<?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>216553</bug_id>
          
          <creation_ts>2020-09-15 08:32:58 -0700</creation_ts>
          <short_desc>[LFC] Move Layout::Rect to a dedicated file</short_desc>
          <delta_ts>2020-09-15 09:17:19 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1688697</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-09-15 08:32:58 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688698</commentid>
    <comment_count>1</comment_count>
      <attachid>408818</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-15 08:34:06 -0700</bug_when>
    <thetext>Created attachment 408818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688710</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-15 09:16:26 -0700</bug_when>
    <thetext>Committed r267087: &lt;https://trac.webkit.org/changeset/267087&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408818.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688711</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-15 09:17:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/68926475&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408818</attachid>
            <date>2020-09-15 08:34:06 -0700</date>
            <delta_ts>2020-09-15 09:16:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216553-20200915083405.patch</filename>
            <type>text/plain</type>
            <size>23803</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI0YjQ1MTdlZGI5OWZi
NWYzNTVmMGIzNDMxMmVhOThhOGFjMzk0OC4uN2I3Njk0YTIyN2NiODY2MWU3OTM1YWE0NWUwODUx
MDllZmJiZTU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDIwLTA5LTE1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gTW92ZSBMYXlvdXQ6
OlJlY3QgdG8gYSBkZWRpY2F0ZWQgZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94R2VvbWV0cnkuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6UmVjdDo6ZXhwYW5kSG9yaXpvbnRhbGx5KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6ZXhwYW5kVmVydGljYWxseSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OmludGVyc2VjdHMgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0OjppbnZhbGlkYXRlVG9wKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6aW52YWxpZGF0ZUxlZnQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0OjppbnZhbGlkYXRlV2lkdGgp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0OjppbnZhbGlkYXRlSGVp
Z2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6aGFzVmFsaWRQ
b3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6
Omhhc1ZhbGlkU2l6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OlJlY3Q6Omhhc1ZhbGlkR2VvbWV0cnkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpSZWN0OjpSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6UmVjdDo6aW52YWxpZGF0ZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6UmVjdDo6c2V0SGFzVmFsaWRQb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OnNldEhhc1ZhbGlkU2l6ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OnRvcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OmxlZnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpSZWN0Ojpib3R0b20gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpSZWN0OjpyaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OlJlY3Q6OnRvcExlZnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpSZWN0Ojpib3R0b21SaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OnNpemUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpSZWN0Ojp3aWR0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OmhlaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OnNldFRvcExlZnQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpSZWN0OjpzZXRUb3ApOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpSZWN0OjpzZXRMZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6UmVjdDo6c2V0V2lkdGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpS
ZWN0OjpzZXRIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0
OjpzZXRTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6c2hp
ZnRMZWZ0VG8pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0OjpzaGlm
dFJpZ2h0VG8pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0OjpzaGlm
dFRvcFRvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6c2hpZnRC
b3R0b21Ubyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6Om1vdmVI
b3Jpem9udGFsbHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0Ojpt
b3ZlVmVydGljYWxseSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6
OmV4cGFuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OmNsb25l
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6b3BlcmF0
b3IgTGF5b3V0UmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0R2VvbWV0cnlSZWN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpSZWN0OjpleHBhbmRIb3Jpem9udGFsbHkpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpS
ZWN0OjpleHBhbmRWZXJ0aWNhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6
aW50ZXJzZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OmludmFs
aWRhdGVUb3ApOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0OjppbnZhbGlkYXRlTGVm
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OmludmFsaWRhdGVXaWR0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OmludmFsaWRhdGVIZWlnaHQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0OjpoYXNWYWxpZFBvc2l0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6aGFzVmFsaWRTaXplIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6UmVjdDo6aGFzVmFsaWRHZW9tZXRyeSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OlJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpSZWN0OjppbnZhbGlkYXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpS
ZWN0OjpzZXRIYXNWYWxpZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVj
dDo6c2V0SGFzVmFsaWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6dG9w
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6bGVmdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OmJvdHRvbSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OnJpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6UmVjdDo6dG9wTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJl
Y3Q6OmJvdHRvbVJpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6
c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OndpZHRoIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6aGVpZ2h0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6c2V0VG9wTGVmdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OlJlY3Q6OnNldFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6
OnNldExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0OjpzZXRXaWR0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OnNldEhlaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OlJlY3Q6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpS
ZWN0OjpzaGlmdExlZnRUbyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OnNoaWZ0
UmlnaHRUbyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlY3Q6OnNoaWZ0VG9wVG8pOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0OjpzaGlmdEJvdHRvbVRvKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6UmVjdDo6bW92ZUhvcml6b250YWxseSk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OlJlY3Q6Om1vdmVWZXJ0aWNhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6UmVjdDo6ZXhwYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVjdDo6Y2xv
bmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZWN0OjpvcGVyYXRvciBMYXlv
dXRSZWN0IGNvbnN0KToKKwogMjAyMC0wOS0xNSAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIENvbnZlcnQgcnVudGltZSBmbGFnIHRvIHNldHRpbmcgZm9yIGxhenkgaW1h
Z2UgbG9hZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDY4MjRlZDBiNDE3YTM2NDkwYTkwMmIwMTI2MjI0MzA1MDMwZDY2YzUu
LjIyZDhjYzk3YTdmODllODIzNWRkMDYzOTJjNzY0M2M2YTkxOTA4ZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwODgsNiAr
MjA4OCw3IEBACiAJCTZGQjdEMkREMjUwRkQ4MjgwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
QjdEMkQ5MjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkI3RDJERTI1MEZE
ODJFMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZCN0QyREEyNTBGRDdGQzAwMDIwN0FBIC8qIEZs
ZXhGb3JtYXR0aW5nU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk2RkNFMUExQTIyNjE4QUJEMDA0RjAzNDMgLyogRGlzcGxheVJ1bi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZDRTFBMTgyMjYx
OEFCMzAwNEYwMzQzIC8qIERpc3BsYXlSdW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk2RkQwOTU0MzI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0
R2VvbWV0cnlSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2RkQwOTU0MTI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZEOUNENTQy
MjdFMjFDODAwRTUzOTU3IC8qIERpc3BsYXlSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkQ5Q0Q1MjIyN0UyMUM4MDBFNTM5NTcgLyogRGlzcGxh
eVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk2RkUxOTgxNzIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lTGluZUJyZWFrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTE5ODE1MjE3ODM5N0Mw
MDQ0NkYwOCAvKiBJbmxpbmVMaW5lQnJlYWtlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGRTdDRkEyMjE3N0VFRjIwMDVCMTU3MyAvKiBJbmxp
bmVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RkU3Q0ZBMDIxNzdFRUYxMDA1QjE1NzMgLyogSW5saW5lSXRlbS5oICovOyB9OwpAQCAtOTY1NCw2
ICs5NjU1LDcgQEAKIAkJNkZDNUNBOTUyMkUzNTk5NDAwQjEzRTExIC8qIFRhYmxlRm9ybWF0dGlu
Z0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkM1Q0E5NjIyRTM1OTk1MDBCMTNFMTEgLyogVGFi
bGVGb3JtYXR0aW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFibGVGb3JtYXR0aW5nU3RhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDRTFBMTgyMjYxOEFCMzAwNEYwMzQz
IC8qIERpc3BsYXlSdW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVJ1bi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk2RkQwOTU0MTI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2Vv
bWV0cnlSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dEdlb21l
dHJ5UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkQ5Q0Q1MjIyN0UyMUM4
MDBFNTM5NTcgLyogRGlzcGxheVJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGlzcGxheVJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTMy
MTc4Mzk3QjAwNDQ2RjA4IC8qIElubGluZUxpbmVCcmVha2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUxpbmVCcmVha2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUxpbmVC
cmVha2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUxpbmVCcmVh
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzQ4NSw2ICsxNzQ4Nyw3IEBA
CiAJCQkJMTE5OUZBNDUyMDhFMzVBMzAwMjM1OENDIC8qIExheW91dENvbnRhaW5lckJveC5jcHAg
Ki8sCiAJCQkJMTE5OUZBNDQyMDhFMzVBMzAwMjM1OENDIC8qIExheW91dENvbnRhaW5lckJveC5o
ICovLAogCQkJCTExQjA0MkZCMjBCMEUyMTQwMDgyOEE2QiAvKiBMYXlvdXREZXNjZW5kYW50SXRl
cmF0b3IuaCAqLywKKwkJCQk2RkQwOTU0MTI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0
cnlSZWN0LmggKi8sCiAJCQkJNkZCMEVEMTEyNDI3QjZDNjAwMjczN0U2IC8qIExheW91dEluaXRp
YWxDb250YWluaW5nQmxvY2suY3BwICovLAogCQkJCTZGNjM4M0Y0MjQyN0FGNDkwMERBQkE1MyAv
KiBMYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2NrLmggKi8sCiAJCQkJNkYwQjk4QjYyM0YyNjkw
NjAwRUVDMkYyIC8qIExheW91dElubGluZVRleHRCb3guY3BwICovLApAQCAtMzI3MjksNiArMzI3
MzIsNyBAQAogCQkJCTExOTlGQTQ2MjA4RTM1QTMwMDIzNThDQyAvKiBMYXlvdXRDb250YWluZXJC
b3guaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMjZCQjZDMjMzNDNFNkYwMDJGMkJFQSAvKiBMYXlv
dXRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENGNTIwQkE0QTRDMDA2NUE4RDAg
LyogTGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk2RkQwOTU0
MzI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk2RjYzODNGNjI0MjdBRjRBMDBEQUJBNTMgLyogTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdC
bG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYwQjk4QjUyM0YyNjhFQzAwRUVDMkYyIC8qIExh
eW91dElubGluZVRleHRCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MTgwMjU1MjNENDU0OUIw
MEZGQjA3MSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94R2VvbWV0
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveEdlb21ldHJ5
LmgKaW5kZXggOGIxMGQ1NTA4MDExYmNhZTY3MTZkYmFjYTRjYTMzNjRhODk4MThlZi4uZWFjNjc0
YWY3Y2VhMWIyMDQwMGNlN2Q2M2VmOGUzNGE4MzY5NmE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94R2VvbWV0cnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3hHZW9tZXRyeS5oCkBAIC0yNywyODQg
KzI3LDEzIEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAotI2lu
Y2x1ZGUgIkRpc3BsYXlSZWN0LmgiCisjaW5jbHVkZSAiTGF5b3V0R2VvbWV0cnlSZWN0LmgiCiAj
aW5jbHVkZSAiTGF5b3V0VW5pdHMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCi1jbGFzcyBSZWN0IHsKLXB1
YmxpYzoKLSAgICBSZWN0KCkgPSBkZWZhdWx0OwotICAgIFJlY3QoTGF5b3V0VW5pdCB0b3AsIExh
eW91dFVuaXQgbGVmdCwgTGF5b3V0VW5pdCB3aWR0aCwgTGF5b3V0VW5pdCBoZWlnaHQpOwotICAg
IFJlY3QoTGF5b3V0UG9pbnQgdG9wTGVmdCwgTGF5b3V0VW5pdCB3aWR0aCwgTGF5b3V0VW5pdCBo
ZWlnaHQpOwotICAgIFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIHRvcExlZnQsIGNvbnN0IExheW91
dFNpemUmKTsKLSAgICAKLSAgICBMYXlvdXRVbml0IHRvcCgpIGNvbnN0OwotICAgIExheW91dFVu
aXQgbGVmdCgpIGNvbnN0OwotICAgIExheW91dFBvaW50IHRvcExlZnQoKSBjb25zdDsKLQotICAg
IExheW91dFVuaXQgYm90dG9tKCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCByaWdodCgpIGNvbnN0
OwotICAgIExheW91dFBvaW50IGJvdHRvbVJpZ2h0KCkgY29uc3Q7Ci0KLSAgICBMYXlvdXRVbml0
IHdpZHRoKCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBoZWlnaHQoKSBjb25zdDsKLSAgICBMYXlv
dXRTaXplIHNpemUoKSBjb25zdDsKLQotICAgIHZvaWQgc2V0VG9wKExheW91dFVuaXQpOwotICAg
IHZvaWQgc2V0TGVmdChMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNldFRvcExlZnQoY29uc3QgTGF5
b3V0UG9pbnQmKTsKLSAgICB2b2lkIHNldFdpZHRoKExheW91dFVuaXQpOwotICAgIHZvaWQgc2V0
SGVpZ2h0KExheW91dFVuaXQpOwotICAgIHZvaWQgc2V0U2l6ZShjb25zdCBMYXlvdXRTaXplJik7
Ci0KLSAgICB2b2lkIHNoaWZ0TGVmdFRvKExheW91dFVuaXQpOwotICAgIHZvaWQgc2hpZnRSaWdo
dFRvKExheW91dFVuaXQpOwotICAgIHZvaWQgc2hpZnRUb3BUbyhMYXlvdXRVbml0KTsKLSAgICB2
b2lkIHNoaWZ0Qm90dG9tVG8oTGF5b3V0VW5pdCk7Ci0KLSAgICB2b2lkIG1vdmVIb3Jpem9udGFs
bHkoTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBtb3ZlVmVydGljYWxseShMYXlvdXRVbml0KTsKLQot
ICAgIHZvaWQgZXhwYW5kKE9wdGlvbmFsPExheW91dFVuaXQ+LCBPcHRpb25hbDxMYXlvdXRVbml0
Pik7Ci0gICAgdm9pZCBleHBhbmRIb3Jpem9udGFsbHkoTGF5b3V0VW5pdCBkZWx0YSkgeyBleHBh
bmQoZGVsdGEsIHsgfSk7IH0KLSAgICB2b2lkIGV4cGFuZFZlcnRpY2FsbHkoTGF5b3V0VW5pdCBk
ZWx0YSkgeyBleHBhbmQoeyB9LCBkZWx0YSk7IH0KLSAgICBib29sIGludGVyc2VjdHMoY29uc3Qg
UmVjdCYgcmVjdCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmludGVyc2VjdHMocmVjdCk7IH0KLQot
ICAgIFJlY3QgY2xvbmUoKSBjb25zdDsKLSAgICBvcGVyYXRvciBMYXlvdXRSZWN0KCkgY29uc3Q7
Ci0KLXByaXZhdGU6Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAgICB2b2lkIGludmFsaWRhdGVUb3Ao
KSB7IG1faGFzVmFsaWRUb3AgPSBmYWxzZTsgfQotICAgIHZvaWQgaW52YWxpZGF0ZUxlZnQoKSB7
IG1faGFzVmFsaWRMZWZ0ID0gZmFsc2U7IH0KLSAgICB2b2lkIGludmFsaWRhdGVXaWR0aCgpIHsg
bV9oYXNWYWxpZFdpZHRoID0gZmFsc2U7IH0KLSAgICB2b2lkIGludmFsaWRhdGVIZWlnaHQoKSB7
IG1faGFzVmFsaWRIZWlnaHQgPSBmYWxzZTsgfQotICAgIHZvaWQgaW52YWxpZGF0ZVBvc2l0aW9u
KCk7Ci0KLSAgICBib29sIGhhc1ZhbGlkUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2hhc1Zh
bGlkVG9wICYmIG1faGFzVmFsaWRMZWZ0OyB9Ci0gICAgYm9vbCBoYXNWYWxpZFNpemUoKSBjb25z
dCB7IHJldHVybiBtX2hhc1ZhbGlkV2lkdGggJiYgbV9oYXNWYWxpZEhlaWdodDsgfQotICAgIGJv
b2wgaGFzVmFsaWRHZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIGhhc1ZhbGlkUG9zaXRpb24oKSAm
JiBoYXNWYWxpZFNpemUoKTsgfQotCi0gICAgdm9pZCBzZXRIYXNWYWxpZFBvc2l0aW9uKCk7Ci0g
ICAgdm9pZCBzZXRIYXNWYWxpZFNpemUoKTsKLQotICAgIGJvb2wgbV9oYXNWYWxpZFRvcCB7IGZh
bHNlIH07Ci0gICAgYm9vbCBtX2hhc1ZhbGlkTGVmdCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hh
c1ZhbGlkV2lkdGggeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXNWYWxpZEhlaWdodCB7IGZhbHNl
IH07Ci0jZW5kaWYgLy8gQVNTRVJUX0VOQUJMRUQKLSAgICBMYXlvdXRSZWN0IG1fcmVjdDsKLX07
Ci0KLWlubGluZSBSZWN0OjpSZWN0KExheW91dFVuaXQgdG9wLCBMYXlvdXRVbml0IGxlZnQsIExh
eW91dFVuaXQgd2lkdGgsIExheW91dFVuaXQgaGVpZ2h0KQotICAgIDogbV9yZWN0KGxlZnQsIHRv
cCwgd2lkdGgsIGhlaWdodCkKLXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIG1faGFzVmFsaWRU
b3AgPSB0cnVlOwotICAgIG1faGFzVmFsaWRMZWZ0ID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkV2lk
dGggPSB0cnVlOwotICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0cnVlOwotI2VuZGlmCi19Ci0KLWlu
bGluZSBSZWN0OjpSZWN0KExheW91dFBvaW50IHRvcExlZnQsIExheW91dFVuaXQgd2lkdGgsIExh
eW91dFVuaXQgaGVpZ2h0KQotICAgIDogUmVjdCh0b3BMZWZ0LnkoKSwgdG9wTGVmdC54KCksIHdp
ZHRoLCBoZWlnaHQpCi17Ci19Ci0KLWlubGluZSBSZWN0OjpSZWN0KGNvbnN0IExheW91dFBvaW50
JiB0b3BMZWZ0LCBjb25zdCBMYXlvdXRTaXplJiBzaXplKQotICAgIDogUmVjdCh0b3BMZWZ0Lnko
KSwgdG9wTGVmdC54KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkKLXsKLX0KLQotI2lm
IEFTU0VSVF9FTkFCTEVECi1pbmxpbmUgdm9pZCBSZWN0OjppbnZhbGlkYXRlUG9zaXRpb24oKQot
ewotICAgIGludmFsaWRhdGVUb3AoKTsKLSAgICBpbnZhbGlkYXRlTGVmdCgpOwotfQotCi1pbmxp
bmUgdm9pZCBSZWN0OjpzZXRIYXNWYWxpZFBvc2l0aW9uKCkKLXsKLSAgICBtX2hhc1ZhbGlkVG9w
ID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7Ci19Ci0KLWlubGluZSB2b2lkIFJl
Y3Q6OnNldEhhc1ZhbGlkU2l6ZSgpCi17Ci0gICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKLSAg
ICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKLX0KLSNlbmRpZgotCi1pbmxpbmUgTGF5b3V0VW5p
dCBSZWN0Ojp0b3AoKSBjb25zdAotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9wKTsKLSAgICBy
ZXR1cm4gbV9yZWN0LnkoKTsKLX0KLQotaW5saW5lIExheW91dFVuaXQgUmVjdDo6bGVmdCgpIGNv
bnN0Ci17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsKLSAgICByZXR1cm4gbV9yZWN0Lngo
KTsKLX0KLQotaW5saW5lIExheW91dFVuaXQgUmVjdDo6Ym90dG9tKCkgY29uc3QKLXsKLSAgICBB
U1NFUlQobV9oYXNWYWxpZFRvcCAmJiBtX2hhc1ZhbGlkSGVpZ2h0KTsKLSAgICByZXR1cm4gbV9y
ZWN0Lm1heFkoKTsKLX0KLQotaW5saW5lIExheW91dFVuaXQgUmVjdDo6cmlnaHQoKSBjb25zdAot
ewotICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCAmJiBtX2hhc1ZhbGlkV2lkdGgpOwotICAgIHJl
dHVybiBtX3JlY3QubWF4WCgpOwotfQotCi1pbmxpbmUgTGF5b3V0UG9pbnQgUmVjdDo6dG9wTGVm
dCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGhhc1ZhbGlkUG9zaXRpb24oKSk7Ci0gICAgcmV0dXJu
IG1fcmVjdC5taW5YTWluWUNvcm5lcigpOwotfQotCi1pbmxpbmUgTGF5b3V0UG9pbnQgUmVjdDo6
Ym90dG9tUmlnaHQoKSBjb25zdAotewotICAgIEFTU0VSVChoYXNWYWxpZEdlb21ldHJ5KCkpOwot
ICAgIHJldHVybiBtX3JlY3QubWF4WE1heFlDb3JuZXIoKTsKLX0KLQotaW5saW5lIExheW91dFNp
emUgUmVjdDo6c2l6ZSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGhhc1ZhbGlkU2l6ZSgpKTsKLSAg
ICByZXR1cm4gbV9yZWN0LnNpemUoKTsKLX0KLQotaW5saW5lIExheW91dFVuaXQgUmVjdDo6d2lk
dGgoKSBjb25zdAotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkV2lkdGgpOwotICAgIHJldHVybiBt
X3JlY3Qud2lkdGgoKTsKLX0KLQotaW5saW5lIExheW91dFVuaXQgUmVjdDo6aGVpZ2h0KCkgY29u
c3QKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZEhlaWdodCk7Ci0gICAgcmV0dXJuIG1fcmVjdC5o
ZWlnaHQoKTsKLX0KLQotaW5saW5lIHZvaWQgUmVjdDo6c2V0VG9wTGVmdChjb25zdCBMYXlvdXRQ
b2ludCYgdG9wTGVmdCkKLXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIHNldEhhc1ZhbGlkUG9z
aXRpb24oKTsKLSNlbmRpZgotICAgIG1fcmVjdC5zZXRMb2NhdGlvbih0b3BMZWZ0KTsKLX0KLQot
aW5saW5lIHZvaWQgUmVjdDo6c2V0VG9wKExheW91dFVuaXQgdG9wKQotewotI2lmIEFTU0VSVF9F
TkFCTEVECi0gICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7Ci0jZW5kaWYKLSAgICBtX3JlY3Quc2V0
WSh0b3ApOwotfQotCi1pbmxpbmUgdm9pZCBSZWN0OjpzZXRMZWZ0KExheW91dFVuaXQgbGVmdCkK
LXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIG1faGFzVmFsaWRMZWZ0ID0gdHJ1ZTsKLSNlbmRp
ZgotICAgIG1fcmVjdC5zZXRYKGxlZnQpOwotfQotCi1pbmxpbmUgdm9pZCBSZWN0OjpzZXRXaWR0
aChMYXlvdXRVbml0IHdpZHRoKQotewotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgbV9oYXNWYWxp
ZFdpZHRoID0gdHJ1ZTsKLSNlbmRpZgotICAgIG1fcmVjdC5zZXRXaWR0aCh3aWR0aCk7Ci19Ci0K
LWlubGluZSB2b2lkIFJlY3Q6OnNldEhlaWdodChMYXlvdXRVbml0IGhlaWdodCkKLXsKLSNpZiBB
U1NFUlRfRU5BQkxFRAotICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0cnVlOwotI2VuZGlmCi0gICAg
bV9yZWN0LnNldEhlaWdodChoZWlnaHQpOwotfQotCi1pbmxpbmUgdm9pZCBSZWN0OjpzZXRTaXpl
KGNvbnN0IExheW91dFNpemUmIHNpemUpCi17Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBzZXRI
YXNWYWxpZFNpemUoKTsKLSNlbmRpZgotICAgIG1fcmVjdC5zZXRTaXplKHNpemUpOwotfQotCi1p
bmxpbmUgdm9pZCBSZWN0OjpzaGlmdExlZnRUbyhMYXlvdXRVbml0IGxlZnQpCi17Ci0gICAgQVNT
RVJUKG1faGFzVmFsaWRMZWZ0KTsKLSAgICBtX3JlY3Quc2hpZnRYRWRnZVRvKGxlZnQpOwotfQot
Ci1pbmxpbmUgdm9pZCBSZWN0OjpzaGlmdFJpZ2h0VG8oTGF5b3V0VW5pdCByaWdodCkKLXsKLSAg
ICBBU1NFUlQobV9oYXNWYWxpZExlZnQgJiYgbV9oYXNWYWxpZFdpZHRoKTsKLSAgICBtX3JlY3Qu
c2hpZnRNYXhYRWRnZVRvKHJpZ2h0KTsKLX0KLQotaW5saW5lIHZvaWQgUmVjdDo6c2hpZnRUb3BU
byhMYXlvdXRVbml0IHRvcCkKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCk7Ci0gICAgbV9y
ZWN0LnNoaWZ0WUVkZ2VUbyh0b3ApOwotfQotCi1pbmxpbmUgdm9pZCBSZWN0OjpzaGlmdEJvdHRv
bVRvKExheW91dFVuaXQgYm90dG9tKQotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9wICYmIG1f
aGFzVmFsaWRIZWlnaHQpOwotICAgIG1fcmVjdC5zaGlmdE1heFlFZGdlVG8oYm90dG9tKTsKLX0K
LQotaW5saW5lIHZvaWQgUmVjdDo6bW92ZUhvcml6b250YWxseShMYXlvdXRVbml0IG9mZnNldCkK
LXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZExlZnQpOwotICAgIG1fcmVjdC5tb3ZlKExheW91dFNp
emUgeyBvZmZzZXQsIDAgfSk7Ci19Ci0KLWlubGluZSB2b2lkIFJlY3Q6Om1vdmVWZXJ0aWNhbGx5
KExheW91dFVuaXQgb2Zmc2V0KQotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9wKTsKLSAgICBt
X3JlY3QubW92ZShMYXlvdXRTaXplIHsgMCwgb2Zmc2V0IH0pOwotfQotCi1pbmxpbmUgdm9pZCBS
ZWN0OjpleHBhbmQoT3B0aW9uYWw8TGF5b3V0VW5pdD4gd2lkdGgsIE9wdGlvbmFsPExheW91dFVu
aXQ+IGhlaWdodCkKLXsKLSAgICBBU1NFUlQoIXdpZHRoIHx8IG1faGFzVmFsaWRXaWR0aCk7Ci0g
ICAgQVNTRVJUKCFoZWlnaHQgfHwgbV9oYXNWYWxpZEhlaWdodCk7Ci0gICAgbV9yZWN0LmV4cGFu
ZCh3aWR0aC52YWx1ZU9yKDApLCBoZWlnaHQudmFsdWVPcigwKSk7Ci19Ci0KLWlubGluZSBSZWN0
IFJlY3Q6OmNsb25lKCkgY29uc3QKLXsKLSAgICBSZWN0IHJlY3Q7Ci0jaWYgQVNTRVJUX0VOQUJM
RUQKLSAgICByZWN0Lm1faGFzVmFsaWRUb3AgPSBtX2hhc1ZhbGlkVG9wOwotICAgIHJlY3QubV9o
YXNWYWxpZExlZnQgPSBtX2hhc1ZhbGlkTGVmdDsKLSAgICByZWN0Lm1faGFzVmFsaWRXaWR0aCA9
IG1faGFzVmFsaWRXaWR0aDsKLSAgICByZWN0Lm1faGFzVmFsaWRIZWlnaHQgID0gbV9oYXNWYWxp
ZEhlaWdodDsKLSNlbmRpZgotICAgIHJlY3QubV9yZWN0ID0gbV9yZWN0OwotICAgIHJldHVybiBy
ZWN0OwotfQotCi1pbmxpbmUgUmVjdDo6b3BlcmF0b3IgTGF5b3V0UmVjdCgpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKGhhc1ZhbGlkR2VvbWV0cnkoKSk7Ci0gICAgcmV0dXJuIG1fcmVjdDsKLX0KLQot
CiBjbGFzcyBCb3hHZW9tZXRyeSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChCb3hHZW9t
ZXRyeSk7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRHZW9tZXRyeVJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dEdlb21ldHJ5UmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiYWUxMTVlMDYzMDBhZDk1Mjkz
M2NiNDA1ZjgxYTgwMWNiNTk0MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRHZW9tZXRyeVJlY3QuaApAQCAtMCwwICsxLDMwOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5H
X0NPTlRFWFQpCisKKyNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCisjaW5jbHVkZSAiTGF5b3V0VW5p
dHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNz
IFJlY3QgeworcHVibGljOgorICAgIFJlY3QoKSA9IGRlZmF1bHQ7CisgICAgUmVjdChMYXlvdXRV
bml0IHRvcCwgTGF5b3V0VW5pdCBsZWZ0LCBMYXlvdXRVbml0IHdpZHRoLCBMYXlvdXRVbml0IGhl
aWdodCk7CisgICAgUmVjdChMYXlvdXRQb2ludCB0b3BMZWZ0LCBMYXlvdXRVbml0IHdpZHRoLCBM
YXlvdXRVbml0IGhlaWdodCk7CisgICAgUmVjdChjb25zdCBMYXlvdXRQb2ludCYgdG9wTGVmdCwg
Y29uc3QgTGF5b3V0U2l6ZSYpOworICAgIAorICAgIExheW91dFVuaXQgdG9wKCkgY29uc3Q7Cisg
ICAgTGF5b3V0VW5pdCBsZWZ0KCkgY29uc3Q7CisgICAgTGF5b3V0UG9pbnQgdG9wTGVmdCgpIGNv
bnN0OworCisgICAgTGF5b3V0VW5pdCBib3R0b20oKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IHJp
Z2h0KCkgY29uc3Q7ICAgICAgICAKKyAgICBMYXlvdXRQb2ludCBib3R0b21SaWdodCgpIGNvbnN0
OworCisgICAgTGF5b3V0VW5pdCB3aWR0aCgpIGNvbnN0OworICAgIExheW91dFVuaXQgaGVpZ2h0
KCkgY29uc3Q7CisgICAgTGF5b3V0U2l6ZSBzaXplKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFRv
cChMYXlvdXRVbml0KTsKKyAgICB2b2lkIHNldExlZnQoTGF5b3V0VW5pdCk7CisgICAgdm9pZCBz
ZXRUb3BMZWZ0KGNvbnN0IExheW91dFBvaW50Jik7CisgICAgdm9pZCBzZXRXaWR0aChMYXlvdXRV
bml0KTsKKyAgICB2b2lkIHNldEhlaWdodChMYXlvdXRVbml0KTsKKyAgICB2b2lkIHNldFNpemUo
Y29uc3QgTGF5b3V0U2l6ZSYpOworCisgICAgdm9pZCBzaGlmdExlZnRUbyhMYXlvdXRVbml0KTsK
KyAgICB2b2lkIHNoaWZ0UmlnaHRUbyhMYXlvdXRVbml0KTsKKyAgICB2b2lkIHNoaWZ0VG9wVG8o
TGF5b3V0VW5pdCk7CisgICAgdm9pZCBzaGlmdEJvdHRvbVRvKExheW91dFVuaXQpOworCisgICAg
dm9pZCBtb3ZlSG9yaXpvbnRhbGx5KExheW91dFVuaXQpOworICAgIHZvaWQgbW92ZVZlcnRpY2Fs
bHkoTGF5b3V0VW5pdCk7CisKKyAgICB2b2lkIGV4cGFuZChPcHRpb25hbDxMYXlvdXRVbml0Piwg
T3B0aW9uYWw8TGF5b3V0VW5pdD4pOworICAgIHZvaWQgZXhwYW5kSG9yaXpvbnRhbGx5KExheW91
dFVuaXQgZGVsdGEpIHsgZXhwYW5kKGRlbHRhLCB7IH0pOyB9CisgICAgdm9pZCBleHBhbmRWZXJ0
aWNhbGx5KExheW91dFVuaXQgZGVsdGEpIHsgZXhwYW5kKHsgfSwgZGVsdGEpOyB9CisgICAgYm9v
bCBpbnRlcnNlY3RzKGNvbnN0IFJlY3QmIHJlY3QpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5pbnRl
cnNlY3RzKHJlY3QpOyB9CisKKyAgICBSZWN0IGNsb25lKCkgY29uc3Q7CisgICAgb3BlcmF0b3Ig
TGF5b3V0UmVjdCgpIGNvbnN0OworCitwcml2YXRlOgorI2lmIEFTU0VSVF9FTkFCTEVECisgICAg
dm9pZCBpbnZhbGlkYXRlVG9wKCkgeyBtX2hhc1ZhbGlkVG9wID0gZmFsc2U7IH0KKyAgICB2b2lk
IGludmFsaWRhdGVMZWZ0KCkgeyBtX2hhc1ZhbGlkTGVmdCA9IGZhbHNlOyB9CisgICAgdm9pZCBp
bnZhbGlkYXRlV2lkdGgoKSB7IG1faGFzVmFsaWRXaWR0aCA9IGZhbHNlOyB9CisgICAgdm9pZCBp
bnZhbGlkYXRlSGVpZ2h0KCkgeyBtX2hhc1ZhbGlkSGVpZ2h0ID0gZmFsc2U7IH0KKyAgICB2b2lk
IGludmFsaWRhdGVQb3NpdGlvbigpOworCisgICAgYm9vbCBoYXNWYWxpZFBvc2l0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9oYXNWYWxpZFRvcCAmJiBtX2hhc1ZhbGlkTGVmdDsgfQorICAgIGJvb2wg
aGFzVmFsaWRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9oYXNWYWxpZFdpZHRoICYmIG1faGFzVmFs
aWRIZWlnaHQ7IH0KKyAgICBib29sIGhhc1ZhbGlkR2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBo
YXNWYWxpZFBvc2l0aW9uKCkgJiYgaGFzVmFsaWRTaXplKCk7IH0KKworICAgIHZvaWQgc2V0SGFz
VmFsaWRQb3NpdGlvbigpOworICAgIHZvaWQgc2V0SGFzVmFsaWRTaXplKCk7CisKKyAgICBib29s
IG1faGFzVmFsaWRUb3AgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNWYWxpZExlZnQgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9oYXNWYWxpZFdpZHRoIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFz
VmFsaWRIZWlnaHQgeyBmYWxzZSB9OworI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECisgICAgTGF5
b3V0UmVjdCBtX3JlY3Q7Cit9OworCitpbmxpbmUgUmVjdDo6UmVjdChMYXlvdXRVbml0IHRvcCwg
TGF5b3V0VW5pdCBsZWZ0LCBMYXlvdXRVbml0IHdpZHRoLCBMYXlvdXRVbml0IGhlaWdodCkKKyAg
ICA6IG1fcmVjdChsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpCit7CisjaWYgQVNTRVJUX0VOQUJM
RUQKKyAgICBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7
CisgICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1
ZTsKKyNlbmRpZgorfQorCitpbmxpbmUgUmVjdDo6UmVjdChMYXlvdXRQb2ludCB0b3BMZWZ0LCBM
YXlvdXRVbml0IHdpZHRoLCBMYXlvdXRVbml0IGhlaWdodCkKKyAgICA6IFJlY3QodG9wTGVmdC55
KCksIHRvcExlZnQueCgpLCB3aWR0aCwgaGVpZ2h0KQoreworfQorCitpbmxpbmUgUmVjdDo6UmVj
dChjb25zdCBMYXlvdXRQb2ludCYgdG9wTGVmdCwgY29uc3QgTGF5b3V0U2l6ZSYgc2l6ZSkKKyAg
ICA6IFJlY3QodG9wTGVmdC55KCksIHRvcExlZnQueCgpLCBzaXplLndpZHRoKCksIHNpemUuaGVp
Z2h0KCkpCit7Cit9CisKKyNpZiBBU1NFUlRfRU5BQkxFRAoraW5saW5lIHZvaWQgUmVjdDo6aW52
YWxpZGF0ZVBvc2l0aW9uKCkKK3sKKyAgICBpbnZhbGlkYXRlVG9wKCk7CisgICAgaW52YWxpZGF0
ZUxlZnQoKTsKK30KKworaW5saW5lIHZvaWQgUmVjdDo6c2V0SGFzVmFsaWRQb3NpdGlvbigpCit7
CisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7CisgICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOwor
fQorCitpbmxpbmUgdm9pZCBSZWN0OjpzZXRIYXNWYWxpZFNpemUoKQoreworICAgIG1faGFzVmFs
aWRXaWR0aCA9IHRydWU7CisgICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7Cit9CisjZW5kaWYK
KworaW5saW5lIExheW91dFVuaXQgUmVjdDo6dG9wKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9o
YXNWYWxpZFRvcCk7CisgICAgcmV0dXJuIG1fcmVjdC55KCk7Cit9CisKK2lubGluZSBMYXlvdXRV
bml0IFJlY3Q6OmxlZnQoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCk7Cisg
ICAgcmV0dXJuIG1fcmVjdC54KCk7Cit9CisKK2lubGluZSBMYXlvdXRVbml0IFJlY3Q6OmJvdHRv
bSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRUb3AgJiYgbV9oYXNWYWxpZEhlaWdo
dCk7CisgICAgcmV0dXJuIG1fcmVjdC5tYXhZKCk7Cit9CisKK2lubGluZSBMYXlvdXRVbml0IFJl
Y3Q6OnJpZ2h0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZExlZnQgJiYgbV9oYXNW
YWxpZFdpZHRoKTsKKyAgICByZXR1cm4gbV9yZWN0Lm1heFgoKTsKK30KKworaW5saW5lIExheW91
dFBvaW50IFJlY3Q6OnRvcExlZnQoKSBjb25zdAoreworICAgIEFTU0VSVChoYXNWYWxpZFBvc2l0
aW9uKCkpOworICAgIHJldHVybiBtX3JlY3QubWluWE1pbllDb3JuZXIoKTsKK30KKworaW5saW5l
IExheW91dFBvaW50IFJlY3Q6OmJvdHRvbVJpZ2h0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFz
VmFsaWRHZW9tZXRyeSgpKTsKKyAgICByZXR1cm4gbV9yZWN0Lm1heFhNYXhZQ29ybmVyKCk7Cit9
CisKK2lubGluZSBMYXlvdXRTaXplIFJlY3Q6OnNpemUoKSBjb25zdAoreworICAgIEFTU0VSVCho
YXNWYWxpZFNpemUoKSk7CisgICAgcmV0dXJuIG1fcmVjdC5zaXplKCk7Cit9CisKK2lubGluZSBM
YXlvdXRVbml0IFJlY3Q6OndpZHRoKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZFdp
ZHRoKTsKKyAgICByZXR1cm4gbV9yZWN0LndpZHRoKCk7Cit9CisKK2lubGluZSBMYXlvdXRVbml0
IFJlY3Q6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRIZWlnaHQpOwor
ICAgIHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7Cit9CisKK2lubGluZSB2b2lkIFJlY3Q6OnNldFRv
cExlZnQoY29uc3QgTGF5b3V0UG9pbnQmIHRvcExlZnQpCit7CisjaWYgQVNTRVJUX0VOQUJMRUQK
KyAgICBzZXRIYXNWYWxpZFBvc2l0aW9uKCk7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0TG9jYXRp
b24odG9wTGVmdCk7Cit9CisKK2lubGluZSB2b2lkIFJlY3Q6OnNldFRvcChMYXlvdXRVbml0IHRv
cCkKK3sKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOworI2Vu
ZGlmCisgICAgbV9yZWN0LnNldFkodG9wKTsKK30KKworaW5saW5lIHZvaWQgUmVjdDo6c2V0TGVm
dChMYXlvdXRVbml0IGxlZnQpCit7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2hhc1ZhbGlk
TGVmdCA9IHRydWU7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0WChsZWZ0KTsKK30KKworaW5saW5l
IHZvaWQgUmVjdDo6c2V0V2lkdGgoTGF5b3V0VW5pdCB3aWR0aCkKK3sKKyNpZiBBU1NFUlRfRU5B
QkxFRAorICAgIG1faGFzVmFsaWRXaWR0aCA9IHRydWU7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0
V2lkdGgod2lkdGgpOworfQorCitpbmxpbmUgdm9pZCBSZWN0OjpzZXRIZWlnaHQoTGF5b3V0VW5p
dCBoZWlnaHQpCit7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0g
dHJ1ZTsKKyNlbmRpZgorICAgIG1fcmVjdC5zZXRIZWlnaHQoaGVpZ2h0KTsKK30KKworaW5saW5l
IHZvaWQgUmVjdDo6c2V0U2l6ZShjb25zdCBMYXlvdXRTaXplJiBzaXplKQoreworI2lmIEFTU0VS
VF9FTkFCTEVECisgICAgc2V0SGFzVmFsaWRTaXplKCk7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0
U2l6ZShzaXplKTsKK30KKworaW5saW5lIHZvaWQgUmVjdDo6c2hpZnRMZWZ0VG8oTGF5b3V0VW5p
dCBsZWZ0KQoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCk7CisgICAgbV9yZWN0LnNoaWZ0
WEVkZ2VUbyhsZWZ0KTsKK30KKworaW5saW5lIHZvaWQgUmVjdDo6c2hpZnRSaWdodFRvKExheW91
dFVuaXQgcmlnaHQpCit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0ICYmIG1faGFzVmFsaWRX
aWR0aCk7CisgICAgbV9yZWN0LnNoaWZ0TWF4WEVkZ2VUbyhyaWdodCk7Cit9CisKK2lubGluZSB2
b2lkIFJlY3Q6OnNoaWZ0VG9wVG8oTGF5b3V0VW5pdCB0b3ApCit7CisgICAgQVNTRVJUKG1faGFz
VmFsaWRUb3ApOworICAgIG1fcmVjdC5zaGlmdFlFZGdlVG8odG9wKTsKK30KKworaW5saW5lIHZv
aWQgUmVjdDo6c2hpZnRCb3R0b21UbyhMYXlvdXRVbml0IGJvdHRvbSkKK3sKKyAgICBBU1NFUlQo
bV9oYXNWYWxpZFRvcCAmJiBtX2hhc1ZhbGlkSGVpZ2h0KTsKKyAgICBtX3JlY3Quc2hpZnRNYXhZ
RWRnZVRvKGJvdHRvbSk7Cit9CisKK2lubGluZSB2b2lkIFJlY3Q6Om1vdmVIb3Jpem9udGFsbHko
TGF5b3V0VW5pdCBvZmZzZXQpCit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsKKyAgICBt
X3JlY3QubW92ZShMYXlvdXRTaXplIHsgb2Zmc2V0LCAwIH0pOworfQorCitpbmxpbmUgdm9pZCBS
ZWN0Ojptb3ZlVmVydGljYWxseShMYXlvdXRVbml0IG9mZnNldCkKK3sKKyAgICBBU1NFUlQobV9o
YXNWYWxpZFRvcCk7CisgICAgbV9yZWN0Lm1vdmUoTGF5b3V0U2l6ZSB7IDAsIG9mZnNldCB9KTsK
K30KKworaW5saW5lIHZvaWQgUmVjdDo6ZXhwYW5kKE9wdGlvbmFsPExheW91dFVuaXQ+IHdpZHRo
LCBPcHRpb25hbDxMYXlvdXRVbml0PiBoZWlnaHQpCit7CisgICAgQVNTRVJUKCF3aWR0aCB8fCBt
X2hhc1ZhbGlkV2lkdGgpOworICAgIEFTU0VSVCghaGVpZ2h0IHx8IG1faGFzVmFsaWRIZWlnaHQp
OworICAgIG1fcmVjdC5leHBhbmQod2lkdGgudmFsdWVPcigwKSwgaGVpZ2h0LnZhbHVlT3IoMCkp
OworfQorCitpbmxpbmUgUmVjdCBSZWN0OjpjbG9uZSgpIGNvbnN0Cit7CisgICAgUmVjdCByZWN0
OworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgcmVjdC5tX2hhc1ZhbGlkVG9wID0gbV9oYXNWYWxp
ZFRvcDsKKyAgICByZWN0Lm1faGFzVmFsaWRMZWZ0ID0gbV9oYXNWYWxpZExlZnQ7CisgICAgcmVj
dC5tX2hhc1ZhbGlkV2lkdGggPSBtX2hhc1ZhbGlkV2lkdGg7CisgICAgcmVjdC5tX2hhc1ZhbGlk
SGVpZ2h0ICA9IG1faGFzVmFsaWRIZWlnaHQ7CisjZW5kaWYgCisgICAgcmVjdC5tX3JlY3QgPSBt
X3JlY3Q7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK2lubGluZSBSZWN0OjpvcGVyYXRvciBMYXlv
dXRSZWN0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzVmFsaWRHZW9tZXRyeSgpKTsgCisgICAg
cmV0dXJuIG1fcmVjdDsKK30KKworfQorfQorI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>