<?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>223967</bug_id>
          
          <creation_ts>2021-03-30 16:53:18 -0700</creation_ts>
          <short_desc>[iOS] Fall back to context menu presentation after long pressing image overlay text</short_desc>
          <delta_ts>2021-03-30 22:52:47 -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>Platform</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1745408</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-30 16:53:18 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745409</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-30 16:53:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/76028620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745413</commentid>
    <comment_count>2</comment_count>
      <attachid>424716</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-30 17:08:44 -0700</bug_when>
    <thetext>Created attachment 424716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745415</commentid>
    <comment_count>3</comment_count>
      <attachid>424717</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-30 17:21:56 -0700</bug_when>
    <thetext>Created attachment 424717
Fix watchOS/tvOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745420</commentid>
    <comment_count>4</comment_count>
      <attachid>424718</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-30 17:35:39 -0700</bug_when>
    <thetext>Created attachment 424718
Fix non-internal iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745505</commentid>
    <comment_count>5</comment_count>
      <attachid>424735</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-30 22:05:51 -0700</bug_when>
    <thetext>Created attachment 424735
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745506</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-03-30 22:05:58 -0700</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745512</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-30 22:52:47 -0700</bug_when>
    <thetext>Committed r275270: &lt;https://commits.webkit.org/r275270&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424735.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424716</attachid>
            <date>2021-03-30 17:08:44 -0700</date>
            <delta_ts>2021-03-30 17:24:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223967-20210330170843.patch</filename>
            <type>text/plain</type>
            <size>19051</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI5MTYzYTVkM2Y5OWQxYWM2
MzUyZDc1MDY5YzViZDhlYzViNzNhMTQuLmZlODk1MDIwMTliZWJlNjY1ZTg2YjM1MmVkZmVhZGZl
N2E3NmI1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMDMtMzAgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRmFsbCBiYWNr
IHRvIGNvbnRleHQgbWVudSBwcmVzZW50YXRpb24gYWZ0ZXIgbG9uZyBwcmVzc2luZyBpbWFnZSBv
dmVybGF5IHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMzk2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzYwMjg2MjA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRo
aXMgYmVoYXZpb3I7IHNlZSA8cmRhcjovL3Byb2JsZW0vNzYwMjg2MjA+IGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uLmg6CisgICAgICAgICogU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOjpkZWNvZGUpOgorCisgICAgICAgIEFkZCBhIGNvdXBsZSBvZiBuZXcgZmxh
Z3MgKGBpc1NlbGVjdGVkYCBhbmQgYGlzSW1hZ2VPdmVybGF5VGV4dGApIHRvIGluZGljYXRlIHdo
ZXRoZXIgdGhlIGludGVyYWN0aW9uIGlzIG92ZXIKKyAgICAgICAgc2VsZWN0ZWQgdGV4dCwgYW5k
IGFsc28gd2hldGhlciB0aGUgaW50ZXJhY3Rpb24gaXMgb3ZlciB0ZXh0IGluIGFuIGltYWdlIG92
ZXJsYXksIHJlc3BlY3RpdmVseS4KKworICAgICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvblJlcXVlc3Q6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0Ojppc1ZhbGlkRm9yUmVxdWVzdCBjb25zdCk6CisKKyAgICAg
ICAgQWRkIGEgbmV3IHBvc2l0aW9uIGluZm9ybWF0aW9uIHJlcXVlc3Qgb3B0aW9uIHRvIGlnbm9y
ZSB1c2VyIGFnZW50IHNoYWRvdyByb290IGNvbnRlbnQuCisKKyAgICAgICAgKiBTaGFyZWQvaW9z
L0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKworICAgICAgICBBZGQgYSBmbGFnIHRoYXQncyBz
ZXQgd2hlbiBgX2ltYWdlRXh0cmFjdGlvblRpbWVvdXRHZXN0dXJlUmVjb2duaXplcmAgaXMgcmVj
b2duaXplZCwgYW5kIGlzIGFib3V0IHRvIHByZXNlbnQgYQorICAgICAgICBjb250ZXh0IG1lbnUs
IGFuZCBpcyB1bnNldCB1cG9uIHN0YXJ0aW5nIHRoZSBjb250ZXh0IG1lbnUgcHJlc2VudGF0aW9u
LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBJbnRlcmFjdGlvbl0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJl
UmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXpl
cjpzaG91bGRCZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjpdKToKKworICAgICAg
ICBNYWtlIHRoZSB0aW1lb3V0IGdlc3R1cmUgKGBfaW1hZ2VFeHRyYWN0aW9uVGltZW91dEdlc3R1
cmVSZWNvZ25pemVyYCkgcmVxdWlyZSB0aGUgZmFpbHVyZSBvZiB0aGUgY29udGV4dCBtZW51Cisg
ICAgICAgIGluaXRpYXRpb24gZ2VzdHVyZSwgc3VjaCB0aGF0IHRoaXMgaW1hZ2UgZXh0cmFjdGlv
biB0aW1lb3V0IGdlc3R1cmUgd29uJ3QgdHJpZ2dlciBpZiB0aGUgY29udGV4dCBtZW51IGhhcwor
ICAgICAgICBhbHJlYWR5IGJlZW4gdHJpZ2dlcmVkLgorCisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2ludmFsaWRhdGVDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lXSk6CisKKyAgICAgICAgUHVs
bCBsb2dpYyBmb3IgcmVzZXR0aW5nIGNhY2hlZCBwb3NpdGlvbiBpbmZvcm1hdGlvbiBpbnRvIGEg
aGVscGVyLCBhbmQgY2FsbCBpdCBpbnNpZGUKKyAgICAgICAgYC1fZGlkQ29tbWl0TG9hZEZvck1h
aW5GcmFtZWAuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29udGV4dE1lbnVJbnRlcmFj
dGlvbjpjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246Y29tcGxldGlvbjpdKToKKworICAg
ICAgICBSZXNldCB0aGUgbmV3IGZsYWcgKGBfY29udGV4dE1lbnVXYXNUcmlnZ2VyZWRCeUltYWdl
RXh0cmFjdGlvblRpbWVvdXRgKSBpZiBuZWNlc3NhcnksIGFuZCB1c2UgaXRzIGV4aXN0aW5nIHZh
bHVlCisgICAgICAgIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIHNob3VsZCBpZ25vcmUgVUEgc2hh
ZG93IHJvb3QgY29udGVudCB3aGVuIHBlcmZvcm1pbmcgYSBoaXQtdGVzdCBmb3IgdGhlIGNvbnRl
eHQgbWVudQorICAgICAgICBjb25maWd1cmF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjppbWFnZVJlbmRlcmVy
QW5kSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjppbWFnZVBvc2l0aW9uSW5mb3JtYXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjplbGVtZW50UG9zaXRpb25JbmZvcm1hdGlvbik6CisKKyAgICAgICAg
QWRkaXRpb25hbGx5IHN1cHBseSB0aGUgaW1hZ2UgVVJMIGFuZCBpbWFnZSBkYXRhIGlmIGBpbmNs
dWRlSW1hZ2VEYXRhYCBpcyBzZXQsIGV2ZW4gaWYgdGhlIGhpdC10ZXN0ZWQgbm9kZSBpcworICAg
ICAgICBqdXN0IGEgdGV4dCBub2RlIHVuZGVybmVhdGggYW4gaW1hZ2UgZWxlbWVudCdzIG92ZXJs
YXkuCisKKyAgICAgICAgKFdlYktpdDo6c2VsZWN0aW9uUG9zaXRpb25JbmZvcm1hdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24pOgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciB0aGUgbmV3IHBvc2l0aW9uIGluZm9ybWF0aW9uIGZsYWdzLgorCiAy
MDIxLTAzLTI5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIHdheSBmb3IgaW50ZXJuYWwgY2xpZW50cyB0byBoaXQtdGVzdCBmb3Igc2VsZWN0
YWJsZSB0ZXh0IGluIHVzZXIgYWdlbnQgc2hhZG93IHJvb3RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5o
CmluZGV4IDU0MDdkZjUxZmNiY2FkMjdmYWMyMjI3MGU1ZGQyNDdiZjMyMzJiNTUuLmFlZTM3ODNm
ZWIyYTg4YmYyN2U0OWIxMzk2N2M4NWY2NGE3MzA3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5o
CkBAIC01NCw2ICs1NCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biB7CiAgICAgYm9vbCBjYW5CZVZhbGlkIHsgdHJ1ZSB9OwogICAgIE9wdGlvbmFsPGJvb2w+IG5v
ZGVBdFBvc2l0aW9uSGFzRG91YmxlQ2xpY2tIYW5kbGVyOwogICAgIGJvb2wgaXNTZWxlY3RhYmxl
IHsgZmFsc2UgfTsKKyAgICBib29sIGlzU2VsZWN0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgcHJl
ZmVyc0RyYWdnaW5nT3ZlclRleHRTZWxlY3Rpb24geyBmYWxzZSB9OwogICAgIGJvb2wgaXNOZWFy
TWFya2VkVGV4dCB7IGZhbHNlIH07CiAgICAgYm9vbCB0b3VjaENhbGxvdXRFbmFibGVkIHsgdHJ1
ZSB9OwpAQCAtNzAsNiArNzEsNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gewogICAgIGJvb2wgcHJldmVudFRleHRJbnRlcmFjdGlvbiB7IGZhbHNlIH07CiAjZW5k
aWYKICAgICBib29sIHNob3VsZE5vdFVzZUlCZWFtSW5FZGl0YWJsZUNvbnRlbnQgeyBmYWxzZSB9
OworICAgIGJvb2wgaXNJbWFnZU92ZXJsYXlUZXh0IHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpG
bG9hdFBvaW50IGFkanVzdGVkUG9pbnRGb3JOb2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHM7CiAg
ICAgVVJMIHVybDsKICAgICBVUkwgaW1hZ2VVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KaW5k
ZXggOTUxMTM5YThmN2Q2ZDVkM2VjNTViOWY1ZTAyOTU4YTBhM2E1NjVkOS4uMDE1OWQ4OWNhMDBj
ZGE4MmY1N2IxZmJiMjYyMjA3ZTEwZTdjN2QwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQpA
QCAtNDUsNiArNDUsNyBAQCB2b2lkIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgY2FuQmVW
YWxpZDsKICAgICBlbmNvZGVyIDw8IG5vZGVBdFBvc2l0aW9uSGFzRG91YmxlQ2xpY2tIYW5kbGVy
OwogICAgIGVuY29kZXIgPDwgaXNTZWxlY3RhYmxlOworICAgIGVuY29kZXIgPDwgaXNTZWxlY3Rl
ZDsKICAgICBlbmNvZGVyIDw8IHByZWZlcnNEcmFnZ2luZ092ZXJUZXh0U2VsZWN0aW9uOwogICAg
IGVuY29kZXIgPDwgaXNOZWFyTWFya2VkVGV4dDsKICAgICBlbmNvZGVyIDw8IHRvdWNoQ2FsbG91
dEVuYWJsZWQ7CkBAIC04NSw2ICs4Niw3IEBAIHZvaWQgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBwcmV2ZW50VGV4dEludGVyYWN0aW9uOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBzaG91
bGROb3RVc2VJQmVhbUluRWRpdGFibGVDb250ZW50OworICAgIGVuY29kZXIgPDwgaXNJbWFnZU92
ZXJsYXlUZXh0OwogICAgIGVuY29kZXIgPDwgZWxlbWVudENvbnRleHQ7CiB9CiAKQEAgLTEwMiw2
ICsxMDQsOSBAQCBib29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBJbnRlcmFjdGlvbgogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmlzU2VsZWN0YWJsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzU2VsZWN0ZWQpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5wcmVmZXJzRHJhZ2dpbmdPdmVy
VGV4dFNlbGVjdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjA0LDYgKzIwOSw5
IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIEludGVyYWN0aW9uCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQuc2hvdWxkTm90VXNlSUJlYW1JbkVkaXRhYmxlQ29udGVudCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzSW1hZ2VPdmVybGF5VGV4
dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmVsZW1lbnRDb250ZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0LmNwcAppbmRleCBiZTE1ODdiYWM5MDJhNzFmZDNiNTRjNTZiYjc4YThkNWEzMTRiMjRjLi5k
ZWM0NjVmMmZkNzk0OGQ3OGM0ZjJjMDNjYTM5NjFmM2Q5ZGM2NTY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAgdm9pZCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlu
Y2x1ZGVIYXNEb3VibGVDbGlja0hhbmRsZXI7CiAgICAgZW5jb2RlciA8PCBpbmNsdWRlSW1hZ2VE
YXRhOwogICAgIGVuY29kZXIgPDwgbGlua0luZGljYXRvclNob3VsZEhhdmVMZWdhY3lNYXJnaW5z
OworICAgIGVuY29kZXIgPDwgZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50OwogfQogCiBi
b29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYgcmVzdWx0KQpAQCAtNjcsNiAr
NjgsOSBAQCBib29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBJbnRlcmFjdGlvbkluZgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmxpbmtJbmRpY2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lucykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmRpc2FsbG93VXNl
ckFnZW50U2hhZG93Q29udGVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC05MSw2ICs5NSw5IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlv
blJlcXVlc3Q6OmlzVmFsaWRGb3JSZXF1ZXN0KGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpCiAg
ICAgaWYgKG90aGVyLmxpbmtJbmRpY2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lucyAhPSBsaW5r
SW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1hcmdpbnMpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAorICAgIGlmIChvdGhlci5kaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQgIT0gZGlzYWxs
b3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBy
ZXR1cm4gKG90aGVyLnBvaW50IC0gcG9pbnQpLmRpYWdvbmFsTGVuZ3RoU3F1YXJlZCgpIDw9IHJh
ZGl1cyAqIHJhZGl1czsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgKaW5kZXggZDAyMGU4ZDEyNzZk
YjE1ZjNiYTY2YjBkZjkzZDQxYzE3NzUxNDA4OC4uMzI2ODU5OWFkZDE1ZTdhNGZhNmU5NWM0Njg2
ZTQ2OTM3YjhhYzQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVy
YWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgc3RydWN0
IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHsKICAgICBib29sIGluY2x1ZGVJbWFnZURh
dGEgeyBmYWxzZSB9OwogCiAgICAgYm9vbCBsaW5rSW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1h
cmdpbnMgeyBmYWxzZSB9OworICAgIGJvb2wgZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50
IHsgZmFsc2UgfTsKIAogICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KCkgeyB9CiAg
ICAgZXhwbGljaXQgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6SW50UG9p
bnQgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggOGYyMGJmZTExNWY1M2IzNmE0NDA1ZTkwNjliNzBk
ODE4MmViYmFmOS4uZTU1ZTNkNjE4Y2E0NmFmMjU5MmEwMmVlMzA5ZTQwNmNmNzQ4YWZjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaApAQCAtNDc1LDYgKzQ3NSw3IEBAIGVudW0gY2xhc3MgUHJvY2VlZFdpdGhJbWFn
ZUV4dHJhY3Rpb24gOiBib29sIHsKICAgICBWZWN0b3I8QmxvY2tQdHI8dm9pZChXZWJLaXQ6OlBy
b2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uKT4+IF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5n
SW1hZ2VFeHRyYWN0aW9uOwogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxV
SU1lbnU+IF9pbWFnZUV4dHJhY3Rpb25Db250ZXh0TWVudTsKKyAgICBCT09MIF9jb250ZXh0TWVu
dVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGltZW91dDsKICNlbmRpZiAvLyBVU0UoVUlD
T05URVhUTUVOVSkKICNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggMGZkMGM1ODE2MjE2N2UzYWViZjJkMjdlZTBjYWNkNjU1M2JiODJlZS4uNzJk
NmUzNmJhZTE1NWI1MjUwOWJiZmJiNjQwYjJmYmEzNmZlOTBiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC05MDgsNiArOTA4LDEwIEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgogICAgIF9pc0NoYW5n
aW5nRm9jdXMgPSBOTzsKICAgICBfaXNCbHVycmluZ0ZvY3VzZWRFbGVtZW50ID0gTk87CiAKKyNp
ZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgX2Nv
bnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0ID0gTk87CisjZW5k
aWYKKwogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogICAgIF9kYXRhTGlzdFRleHRTdWdn
ZXN0aW9uc0lucHV0VmlldyA9IG5pbDsKICAgICBfZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnMgPSBu
aWw7CkBAIC05NjQsNiArOTY4LDEwIEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0aW9uCiAKICAg
ICBfdHJlYXRBc0NvbnRlbnRFZGl0YWJsZVVudGlsTmV4dEVkaXRvclN0YXRlVXBkYXRlID0gTk87
CiAKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisg
ICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0ID0gTk87
CisjZW5kaWYKKwogICAgIGlmIChfaW50ZXJhY3Rpb25WaWV3c0NvbnRhaW5lclZpZXcpIHsKICAg
ICAgICAgW3NlbGYubGF5ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidHJhbnNm
b3JtIiBjb250ZXh0OldLQ29udGVudFZpZXdLVk9UcmFuc2Zvcm1Db250ZXh0XTsKICAgICAgICAg
W19pbnRlcmFjdGlvblZpZXdzQ29udGFpbmVyVmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKQEAg
LTIzMDcsNiArMjMxNSw5IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJl
Y29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZXF1aXJlCiAgICAgaWYgKFtvdGhl
ckdlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplci5jbGFzc10pCiAgICAgICAgIHJldHVybiBbKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgKilvdGhlckdlc3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2VzdHVyZVJlY29nbml6ZXI6
Z2VzdHVyZVJlY29nbml6ZXJdOwogCisgICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyID09IF9pbWFn
ZUV4dHJhY3Rpb25UaW1lb3V0R2VzdHVyZVJlY29nbml6ZXIgJiYgb3RoZXJHZXN0dXJlUmVjb2du
aXplciA9PSBbX2NvbnRleHRNZW51SW50ZXJhY3Rpb24gZ2VzdHVyZVJlY29nbml6ZXJGb3JGYWls
dXJlUmVsYXRpb25zaGlwc10pCisgICAgICAgIHJldHVybiBZRVM7CisKICAgICByZXR1cm4gTk87
CiB9CiAKQEAgLTIzMTUsNiArMjMyNiw5IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJ
R2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRCZVJlcXVpCiAgICAg
aWYgKFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXIuY2xhc3NdKQogICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlUmVjb2duaXplcjpv
dGhlckdlc3R1cmVSZWNvZ25pemVyXTsKIAorICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBb
X2NvbnRleHRNZW51SW50ZXJhY3Rpb24gZ2VzdHVyZVJlY29nbml6ZXJGb3JGYWlsdXJlUmVsYXRp
b25zaGlwc10gJiYgb3RoZXJHZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VFeHRyYWN0aW9uVGlt
ZW91dEdlc3R1cmVSZWNvZ25pemVyKQorICAgICAgICByZXR1cm4gWUVTOworCiAgICAgcmV0dXJu
IE5POwogfQogCkBAIC0zMDQ4LDYgKzMwNjIsMTIgQEAgLSAodm9pZCljbGVhclNlbGVjdGlvbgog
ICAgIF9wYWdlLT5jbGVhclNlbGVjdGlvbigpOwogfQogCistICh2b2lkKV9pbnZhbGlkYXRlQ3Vy
cmVudFBvc2l0aW9uSW5mb3JtYXRpb24KK3sKKyAgICBfaGFzVmFsaWRQb3NpdGlvbkluZm9ybWF0
aW9uID0gTk87CisgICAgX3Bvc2l0aW9uSW5mb3JtYXRpb24gPSB7IH07Cit9CisKIC0gKHZvaWQp
X3Bvc2l0aW9uSW5mb3JtYXRpb25EaWRDaGFuZ2U6KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm8KIHsKICAgICBpZiAoX2xhc3RPdXRzdGFuZGluZ1Bv
c2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0ICYmIGluZm8ucmVxdWVzdC5pc1ZhbGlkRm9yUmVxdWVz
dCgqX2xhc3RPdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KSkKQEAgLTQ0OTMs
OCArNDUxMyw3IEBAIC0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWUKICAgICBfdGV4
dEludGVyYWN0aW9uRGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnQgPSBOTzsKICAgICBfYWN0aXZlVGV4
dEludGVyYWN0aW9uQ291bnQgPSAwOwogICAgIF90cmVhdEFzQ29udGVudEVkaXRhYmxlVW50aWxO
ZXh0RWRpdG9yU3RhdGVVcGRhdGUgPSBOTzsKLSAgICBfaGFzVmFsaWRQb3NpdGlvbkluZm9ybWF0
aW9uID0gTk87Ci0gICAgX3Bvc2l0aW9uSW5mb3JtYXRpb24gPSB7IH07CisgICAgW3NlbGYgX2lu
dmFsaWRhdGVDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKICNpZiAhVVNFKFVJS0lU
X0tFWUJPQVJEX0FERElUSU9OUykKQEAgLTk5NTQsMTMgKzk5NzMsMTkgQEAgLSAoVUlDb250ZXh0
TWVudUNvbmZpZ3VyYXRpb24gKiljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb24KIAogLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0
TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0
aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246KHZvaWQoXikoVUlDb250ZXh0TWVudUNv
bmZpZ3VyYXRpb24gKikpY29tcGxldGlvbgogeworI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9O
KQorICAgIEJPT0wgdHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0ID0gc3RkOjpleGNo
YW5nZShfY29udGV4dE1lbnVXYXNUcmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQsIE5P
KTsKKyNlbHNlCisgICAgQk9PTCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQgPSBO
TzsKKyNlbmRpZgorCiAgICAgaWYgKCFfd2ViVmlldykKICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b24obmlsKTsKIAogICAgIGlmICghc2VsZi53ZWJWaWV3LmNvbmZpZ3VyYXRpb24uX2xvbmdQcmVz
c0FjdGlvbnNFbmFibGVkKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbihuaWwpOwogCi0gICAg
YXV0byBnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWUgPSBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0
cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgaW50ZXJhY3Rpb24gPSByZXRhaW5QdHIoaW50ZXJhY3Rp
b24pLCBjb21wbGV0aW9uID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb24pXSAoV2ViS2l0OjpQcm9j
ZWVkV2l0aEltYWdlRXh0cmFjdGlvbiBwcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbikgeworICAg
IGF1dG8gZ2V0Q29uZmlndXJhdGlvbkFuZENvbnRpbnVlID0gW3dlYWtTZWxmID0gV2Vha09iakNQ
dHI8V0tDb250ZW50Vmlldz4oc2VsZiksIGludGVyYWN0aW9uID0gcmV0YWluUHRyKGludGVyYWN0
aW9uKSwgY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgdHJpZ2dlcmVkQnlJ
bWFnZUV4dHJhY3Rpb25UaW1lb3V0XSAoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlv
biBwcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbikgewogICAgICAgICBhdXRvIHN0cm9uZ1NlbGYg
PSB3ZWFrU2VsZi5nZXQoKTsKICAgICAgICAgaWYgKCFzdHJvbmdTZWxmIHx8IHByb2NlZWRXaXRo
SW1hZ2VFeHRyYWN0aW9uID09IFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb246Olll
cykgewogICAgICAgICAgICAgY29tcGxldGlvbihuaWwpOwpAQCAtOTk3Niw2ICsxMDAwMSw3IEBA
IC0gKHZvaWQpX2NvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlv
biAqKWludGVyYWN0aW9uIGNvbmZpZ3VyCiAgICAgICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvblJlcXVlc3QgcmVxdWVzdCB7IFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChbaW50ZXJh
Y3Rpb24gbG9jYXRpb25JblZpZXc6c3Ryb25nU2VsZi5nZXQoKV0pIH07CiAgICAgICAgIHJlcXVl
c3QuaW5jbHVkZVNuYXBzaG90ID0gdHJ1ZTsKICAgICAgICAgcmVxdWVzdC5pbmNsdWRlTGlua0lu
ZGljYXRvciA9IHRydWU7CisgICAgICAgIHJlcXVlc3QuZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dD
b250ZW50ID0gdHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0OwogICAgICAgICByZXF1
ZXN0LmxpbmtJbmRpY2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lucyA9ICFbc3Ryb25nU2VsZiBf
c2hvdWxkVXNlQ29udGV4dE1lbnVzXTsKIAogICAgICAgICBbc3Ryb25nU2VsZiBkb0FmdGVyUG9z
aXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRW
aWV3PihzdHJvbmdTZWxmLmdldCgpKSwgY29tcGxldGlvbl0gKFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggOTJiZjdkN2Q1OTkyN2FmNzA5MDUyODE4
MzIxYTBmMjAyY2YyNGU5Yi4uMWFmZjA5NDFiOTNlYTE2MTVkNTY1YTNiODFjZTg5NzcwMzEyOTIw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTI2NjUsMTkgKzI2NjUsMzIgQEAgc3RhdGljIHZvaWQgZGF0YURldGVjdG9y
TGlua1Bvc2l0aW9uSW5mb3JtYXRpb24oRWxlbWVudCYgZWxlbWVudCwgSW50ZXJhY3Rpb25JbmYK
IAogI2VuZGlmCiAKLXN0YXRpYyB2b2lkIGltYWdlUG9zaXRpb25JbmZvcm1hdGlvbihXZWJQYWdl
JiBwYWdlLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdCYgcmVxdWVzdCwgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIGluZm8pCitz
dGF0aWMgT3B0aW9uYWw8c3RkOjpwYWlyPFJlbmRlckltYWdlJiwgSW1hZ2UmPj4gaW1hZ2VSZW5k
ZXJlckFuZEltYWdlKEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcmVuZGVySW1hZ2Ug
PSBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKihlbGVtZW50LnJlbmRlcmVyKCkpKTsKKyAgICBpZiAo
IWlzPFJlbmRlckltYWdlPihlbGVtZW50LnJlbmRlcmVyKCkpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgYXV0byYgcmVuZGVySW1hZ2UgPSBkb3duY2FzdDxSZW5kZXJJbWFn
ZT4oKmVsZW1lbnQucmVuZGVyZXIoKSk7CiAgICAgaWYgKCFyZW5kZXJJbWFnZS5jYWNoZWRJbWFn
ZSgpIHx8IHJlbmRlckltYWdlLmNhY2hlZEltYWdlKCktPmVycm9yT2NjdXJyZWQoKSkKLSAgICAg
ICAgcmV0dXJuOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgYXV0byogaW1h
Z2UgPSByZW5kZXJJbWFnZS5jYWNoZWRJbWFnZSgpLT5pbWFnZUZvclJlbmRlcmVyKCZyZW5kZXJJ
bWFnZSk7CiAgICAgaWYgKCFpbWFnZSB8fCBpbWFnZS0+d2lkdGgoKSA8PSAxIHx8IGltYWdlLT5o
ZWlnaHQoKSA8PSAxKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJu
IHt7IHJlbmRlckltYWdlLCAqaW1hZ2UgfX07Cit9CisKK3N0YXRpYyB2b2lkIGltYWdlUG9zaXRp
b25JbmZvcm1hdGlvbihXZWJQYWdlJiBwYWdlLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRl
cmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYgcmVxdWVzdCwgSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24mIGluZm8pCit7CisgICAgYXV0byByZW5kZXJlckFuZEltYWdlID0gaW1hZ2VS
ZW5kZXJlckFuZEltYWdlKGVsZW1lbnQpOworICAgIGlmICghcmVuZGVyZXJBbmRJbWFnZSkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgYXV0byYgW3JlbmRlckltYWdlLCBpbWFnZV0gPSAqcmVuZGVy
ZXJBbmRJbWFnZTsKICAgICBpbmZvLmlzSW1hZ2UgPSB0cnVlOwogICAgIGluZm8uaW1hZ2VVUkwg
PSBlbGVtZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwocmVuZGVySW1hZ2UuY2FjaGVkSW1hZ2Uo
KS0+dXJsKCkuc3RyaW5nKCkpOwotICAgIGluZm8uaXNBbmltYXRlZEltYWdlID0gaW1hZ2UtPmlz
QW5pbWF0ZWQoKTsKKyAgICBpbmZvLmlzQW5pbWF0ZWRJbWFnZSA9IGltYWdlLmlzQW5pbWF0ZWQo
KTsKIAogICAgIGlmIChyZXF1ZXN0LmluY2x1ZGVTbmFwc2hvdCB8fCByZXF1ZXN0LmluY2x1ZGVJ
bWFnZURhdGEpCiAgICAgICAgIGluZm8uaW1hZ2UgPSBjcmVhdGVTaGFyZWFibGVCaXRtYXAocmVu
ZGVySW1hZ2UsIHNjcmVlblNpemUoKSAqIHBhZ2UuY29yZVBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0
b3IoKSk7CkBAIC0yNzMzLDEyICsyNzQ2LDE3IEBAIHN0YXRpYyB2b2lkIGVsZW1lbnRQb3NpdGlv
bkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEluCiAK
ICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LnJlbmRlcmVyKCkpIHsKICAgICAgICAg
Ym9vbCBzaG91bGRDb2xsZWN0SW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uID0gcmVuZGVyZXItPmlz
UmVuZGVySW1hZ2UoKTsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAgICAgICAgaWYg
KGlubmVyTm9uU2hhcmVkTm9kZSAmJiBIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KCpp
bm5lck5vblNoYXJlZE5vZGUpKQorICAgICAgICBpZiAoc2hvdWxkQ29sbGVjdEltYWdlUG9zaXRp
b25JbmZvcm1hdGlvbiAmJiBpbm5lck5vblNoYXJlZE5vZGUgJiYgSFRNTEVsZW1lbnQ6OmlzSW1h
Z2VPdmVybGF5VGV4dCgqaW5uZXJOb25TaGFyZWROb2RlKSkgewogICAgICAgICAgICAgc2hvdWxk
Q29sbGVjdEltYWdlUG9zaXRpb25JbmZvcm1hdGlvbiA9IGZhbHNlOwotI2Vsc2UKLSAgICAgICAg
VU5VU0VEX1BBUkFNKGlubmVyTm9uU2hhcmVkTm9kZSk7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlu
Zm8uaXNJbWFnZU92ZXJsYXlUZXh0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChyZXF1ZXN0Lmlu
Y2x1ZGVJbWFnZURhdGEpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byByZW5kZXJlckFuZElt
YWdlID0gaW1hZ2VSZW5kZXJlckFuZEltYWdlKGVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGF1dG8mIFtyZW5kZXJJbWFnZSwgaW1hZ2VdID0gKnJlbmRlcmVyQW5kSW1hZ2U7CisgICAg
ICAgICAgICAgICAgICAgIGluZm8uaW1hZ2VVUkwgPSBlbGVtZW50LmRvY3VtZW50KCkuY29tcGxl
dGVVUkwocmVuZGVySW1hZ2UuY2FjaGVkSW1hZ2UoKS0+dXJsKCkuc3RyaW5nKCkpOworICAgICAg
ICAgICAgICAgICAgICBpbmZvLmltYWdlID0gY3JlYXRlU2hhcmVhYmxlQml0bWFwKHJlbmRlcklt
YWdlLCBzY3JlZW5TaXplKCkgKiBwYWdlLmNvcmVQYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCkp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICBp
ZiAoc2hvdWxkQ29sbGVjdEltYWdlUG9zaXRpb25JbmZvcm1hdGlvbikKICAgICAgICAgICAgIGlt
YWdlUG9zaXRpb25JbmZvcm1hdGlvbihwYWdlLCBlbGVtZW50LCByZXF1ZXN0LCBpbmZvKTsKICAg
ICAgICAgYm91bmRzUG9zaXRpb25JbmZvcm1hdGlvbigqcmVuZGVyZXIsIGluZm8pOwpAQCAtMjc1
OSw2ICsyNzc3LDggQEAgc3RhdGljIHZvaWQgc2VsZWN0aW9uUG9zaXRpb25JbmZvcm1hdGlvbihX
ZWJQYWdlJiBwYWdlLCBjb25zdCBJbnRlcmFjdGlvbkluZm9ybWEKIAogICAgIFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSBoaXROb2RlLT5yZW5kZXJlcigpOwogICAgIGJvdW5kc1Bvc2l0aW9uSW5m
b3JtYXRpb24oKnJlbmRlcmVyLCBpbmZvKTsKKworICAgIGluZm8uaXNTZWxlY3RlZCA9IHJlc3Vs
dC5pc1NlbGVjdGVkKCk7CiAgICAgCiAgICAgaWYgKGlzPEVsZW1lbnQ+KCpoaXROb2RlKSkgewog
ICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKmhpdE5vZGUpOwpA
QCAtMjkyMSw4ICsyOTQxLDE2IEBAIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIFdl
YlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JCiAgICAgICAgIGlu
Zm8ubm9kZUF0UG9zaXRpb25IYXNEb3VibGVDbGlja0hhbmRsZXIgPSBtX3BhZ2UtPm1haW5GcmFt
ZSgpLm5vZGVSZXNwb25kaW5nVG9Eb3VibGVDbGlja0V2ZW50KHJlcXVlc3QucG9pbnQsIGFkanVz
dGVkUG9pbnQpOwogCiAgICAgYXV0byYgZXZlbnRIYW5kbGVyID0gbV9wYWdlLT5tYWluRnJhbWUo
KS5ldmVudEhhbmRsZXIoKTsKLSAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0
OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSwgSGl0VGVz
dFJlcXVlc3Q6OkFsbG93RnJhbWVTY3JvbGxiYXJzLCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dWaXNp
YmxlQ2hpbGRGcmFtZUNvbnRlbnRPbmx5IH07Ci0gICAgYXV0byBoaXRUZXN0UmVzdWx0ID0gZXZl
bnRIYW5kbGVyLmhpdFRlc3RSZXN1bHRBdFBvaW50KHJlcXVlc3QucG9pbnQsIGhpdFR5cGUpOwor
ICAgIGF1dG8gaGl0VGVzdFJlcXVlc3RUeXBlcyA9IE9wdGlvblNldDxIaXRUZXN0UmVxdWVzdDo6
UmVxdWVzdFR5cGU+IHsKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5LAorICAgICAg
ICBIaXRUZXN0UmVxdWVzdDo6QWxsb3dGcmFtZVNjcm9sbGJhcnMsCisgICAgICAgIEhpdFRlc3RS
ZXF1ZXN0OjpBbGxvd1Zpc2libGVDaGlsZEZyYW1lQ29udGVudE9ubHksCisgICAgfTsKKworICAg
IGlmIChyZXF1ZXN0LmRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCkKKyAgICAgICAgaGl0
VGVzdFJlcXVlc3RUeXBlcy5hZGQoSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hh
ZG93Q29udGVudCk7CisKKyAgICBhdXRvIGhpdFRlc3RSZXN1bHQgPSBldmVudEhhbmRsZXIuaGl0
VGVzdFJlc3VsdEF0UG9pbnQocmVxdWVzdC5wb2ludCwgaGl0VGVzdFJlcXVlc3RUeXBlcyk7CiAg
ICAgaWYgKGF1dG8qIGhpdEZyYW1lID0gaGl0VGVzdFJlc3VsdC5pbm5lck5vZGVGcmFtZSgpKSB7
CiAgICAgICAgIGluZm8uY3Vyc29yID0gaGl0RnJhbWUtPmV2ZW50SGFuZGxlcigpLnNlbGVjdEN1
cnNvcihoaXRUZXN0UmVzdWx0LCBmYWxzZSk7CiAgICAgICAgIGlmIChyZXF1ZXN0LmluY2x1ZGVD
YXJldENvbnRleHQpCg==
</data>
<flag name="commit-queue"
          id="444462"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424717</attachid>
            <date>2021-03-30 17:21:56 -0700</date>
            <delta_ts>2021-03-30 18:07:44 -0700</delta_ts>
            <desc>Fix watchOS/tvOS</desc>
            <filename>bug-223967-20210330172155.patch</filename>
            <type>text/plain</type>
            <size>19117</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI5MTYzYTVkM2Y5OWQxYWM2
MzUyZDc1MDY5YzViZDhlYzViNzNhMTQuLmZlODk1MDIwMTliZWJlNjY1ZTg2YjM1MmVkZmVhZGZl
N2E3NmI1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMDMtMzAgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRmFsbCBiYWNr
IHRvIGNvbnRleHQgbWVudSBwcmVzZW50YXRpb24gYWZ0ZXIgbG9uZyBwcmVzc2luZyBpbWFnZSBv
dmVybGF5IHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMzk2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzYwMjg2MjA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRo
aXMgYmVoYXZpb3I7IHNlZSA8cmRhcjovL3Byb2JsZW0vNzYwMjg2MjA+IGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uLmg6CisgICAgICAgICogU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOjpkZWNvZGUpOgorCisgICAgICAgIEFkZCBhIGNvdXBsZSBvZiBuZXcgZmxh
Z3MgKGBpc1NlbGVjdGVkYCBhbmQgYGlzSW1hZ2VPdmVybGF5VGV4dGApIHRvIGluZGljYXRlIHdo
ZXRoZXIgdGhlIGludGVyYWN0aW9uIGlzIG92ZXIKKyAgICAgICAgc2VsZWN0ZWQgdGV4dCwgYW5k
IGFsc28gd2hldGhlciB0aGUgaW50ZXJhY3Rpb24gaXMgb3ZlciB0ZXh0IGluIGFuIGltYWdlIG92
ZXJsYXksIHJlc3BlY3RpdmVseS4KKworICAgICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvblJlcXVlc3Q6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0Ojppc1ZhbGlkRm9yUmVxdWVzdCBjb25zdCk6CisKKyAgICAg
ICAgQWRkIGEgbmV3IHBvc2l0aW9uIGluZm9ybWF0aW9uIHJlcXVlc3Qgb3B0aW9uIHRvIGlnbm9y
ZSB1c2VyIGFnZW50IHNoYWRvdyByb290IGNvbnRlbnQuCisKKyAgICAgICAgKiBTaGFyZWQvaW9z
L0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKworICAgICAgICBBZGQgYSBmbGFnIHRoYXQncyBz
ZXQgd2hlbiBgX2ltYWdlRXh0cmFjdGlvblRpbWVvdXRHZXN0dXJlUmVjb2duaXplcmAgaXMgcmVj
b2duaXplZCwgYW5kIGlzIGFib3V0IHRvIHByZXNlbnQgYQorICAgICAgICBjb250ZXh0IG1lbnUs
IGFuZCBpcyB1bnNldCB1cG9uIHN0YXJ0aW5nIHRoZSBjb250ZXh0IG1lbnUgcHJlc2VudGF0aW9u
LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBJbnRlcmFjdGlvbl0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJl
UmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXpl
cjpzaG91bGRCZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjpdKToKKworICAgICAg
ICBNYWtlIHRoZSB0aW1lb3V0IGdlc3R1cmUgKGBfaW1hZ2VFeHRyYWN0aW9uVGltZW91dEdlc3R1
cmVSZWNvZ25pemVyYCkgcmVxdWlyZSB0aGUgZmFpbHVyZSBvZiB0aGUgY29udGV4dCBtZW51Cisg
ICAgICAgIGluaXRpYXRpb24gZ2VzdHVyZSwgc3VjaCB0aGF0IHRoaXMgaW1hZ2UgZXh0cmFjdGlv
biB0aW1lb3V0IGdlc3R1cmUgd29uJ3QgdHJpZ2dlciBpZiB0aGUgY29udGV4dCBtZW51IGhhcwor
ICAgICAgICBhbHJlYWR5IGJlZW4gdHJpZ2dlcmVkLgorCisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2ludmFsaWRhdGVDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lXSk6CisKKyAgICAgICAgUHVs
bCBsb2dpYyBmb3IgcmVzZXR0aW5nIGNhY2hlZCBwb3NpdGlvbiBpbmZvcm1hdGlvbiBpbnRvIGEg
aGVscGVyLCBhbmQgY2FsbCBpdCBpbnNpZGUKKyAgICAgICAgYC1fZGlkQ29tbWl0TG9hZEZvck1h
aW5GcmFtZWAuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29udGV4dE1lbnVJbnRlcmFj
dGlvbjpjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246Y29tcGxldGlvbjpdKToKKworICAg
ICAgICBSZXNldCB0aGUgbmV3IGZsYWcgKGBfY29udGV4dE1lbnVXYXNUcmlnZ2VyZWRCeUltYWdl
RXh0cmFjdGlvblRpbWVvdXRgKSBpZiBuZWNlc3NhcnksIGFuZCB1c2UgaXRzIGV4aXN0aW5nIHZh
bHVlCisgICAgICAgIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIHNob3VsZCBpZ25vcmUgVUEgc2hh
ZG93IHJvb3QgY29udGVudCB3aGVuIHBlcmZvcm1pbmcgYSBoaXQtdGVzdCBmb3IgdGhlIGNvbnRl
eHQgbWVudQorICAgICAgICBjb25maWd1cmF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjppbWFnZVJlbmRlcmVy
QW5kSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjppbWFnZVBvc2l0aW9uSW5mb3JtYXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjplbGVtZW50UG9zaXRpb25JbmZvcm1hdGlvbik6CisKKyAgICAgICAg
QWRkaXRpb25hbGx5IHN1cHBseSB0aGUgaW1hZ2UgVVJMIGFuZCBpbWFnZSBkYXRhIGlmIGBpbmNs
dWRlSW1hZ2VEYXRhYCBpcyBzZXQsIGV2ZW4gaWYgdGhlIGhpdC10ZXN0ZWQgbm9kZSBpcworICAg
ICAgICBqdXN0IGEgdGV4dCBub2RlIHVuZGVybmVhdGggYW4gaW1hZ2UgZWxlbWVudCdzIG92ZXJs
YXkuCisKKyAgICAgICAgKFdlYktpdDo6c2VsZWN0aW9uUG9zaXRpb25JbmZvcm1hdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24pOgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciB0aGUgbmV3IHBvc2l0aW9uIGluZm9ybWF0aW9uIGZsYWdzLgorCiAy
MDIxLTAzLTI5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIHdheSBmb3IgaW50ZXJuYWwgY2xpZW50cyB0byBoaXQtdGVzdCBmb3Igc2VsZWN0
YWJsZSB0ZXh0IGluIHVzZXIgYWdlbnQgc2hhZG93IHJvb3RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5o
CmluZGV4IDU0MDdkZjUxZmNiY2FkMjdmYWMyMjI3MGU1ZGQyNDdiZjMyMzJiNTUuLmFlZTM3ODNm
ZWIyYTg4YmYyN2U0OWIxMzk2N2M4NWY2NGE3MzA3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5o
CkBAIC01NCw2ICs1NCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biB7CiAgICAgYm9vbCBjYW5CZVZhbGlkIHsgdHJ1ZSB9OwogICAgIE9wdGlvbmFsPGJvb2w+IG5v
ZGVBdFBvc2l0aW9uSGFzRG91YmxlQ2xpY2tIYW5kbGVyOwogICAgIGJvb2wgaXNTZWxlY3RhYmxl
IHsgZmFsc2UgfTsKKyAgICBib29sIGlzU2VsZWN0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgcHJl
ZmVyc0RyYWdnaW5nT3ZlclRleHRTZWxlY3Rpb24geyBmYWxzZSB9OwogICAgIGJvb2wgaXNOZWFy
TWFya2VkVGV4dCB7IGZhbHNlIH07CiAgICAgYm9vbCB0b3VjaENhbGxvdXRFbmFibGVkIHsgdHJ1
ZSB9OwpAQCAtNzAsNiArNzEsNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gewogICAgIGJvb2wgcHJldmVudFRleHRJbnRlcmFjdGlvbiB7IGZhbHNlIH07CiAjZW5k
aWYKICAgICBib29sIHNob3VsZE5vdFVzZUlCZWFtSW5FZGl0YWJsZUNvbnRlbnQgeyBmYWxzZSB9
OworICAgIGJvb2wgaXNJbWFnZU92ZXJsYXlUZXh0IHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpG
bG9hdFBvaW50IGFkanVzdGVkUG9pbnRGb3JOb2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHM7CiAg
ICAgVVJMIHVybDsKICAgICBVUkwgaW1hZ2VVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KaW5k
ZXggOTUxMTM5YThmN2Q2ZDVkM2VjNTViOWY1ZTAyOTU4YTBhM2E1NjVkOS4uMDE1OWQ4OWNhMDBj
ZGE4MmY1N2IxZmJiMjYyMjA3ZTEwZTdjN2QwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQpA
QCAtNDUsNiArNDUsNyBAQCB2b2lkIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgY2FuQmVW
YWxpZDsKICAgICBlbmNvZGVyIDw8IG5vZGVBdFBvc2l0aW9uSGFzRG91YmxlQ2xpY2tIYW5kbGVy
OwogICAgIGVuY29kZXIgPDwgaXNTZWxlY3RhYmxlOworICAgIGVuY29kZXIgPDwgaXNTZWxlY3Rl
ZDsKICAgICBlbmNvZGVyIDw8IHByZWZlcnNEcmFnZ2luZ092ZXJUZXh0U2VsZWN0aW9uOwogICAg
IGVuY29kZXIgPDwgaXNOZWFyTWFya2VkVGV4dDsKICAgICBlbmNvZGVyIDw8IHRvdWNoQ2FsbG91
dEVuYWJsZWQ7CkBAIC04NSw2ICs4Niw3IEBAIHZvaWQgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBwcmV2ZW50VGV4dEludGVyYWN0aW9uOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBzaG91
bGROb3RVc2VJQmVhbUluRWRpdGFibGVDb250ZW50OworICAgIGVuY29kZXIgPDwgaXNJbWFnZU92
ZXJsYXlUZXh0OwogICAgIGVuY29kZXIgPDwgZWxlbWVudENvbnRleHQ7CiB9CiAKQEAgLTEwMiw2
ICsxMDQsOSBAQCBib29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBJbnRlcmFjdGlvbgogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmlzU2VsZWN0YWJsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzU2VsZWN0ZWQpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5wcmVmZXJzRHJhZ2dpbmdPdmVy
VGV4dFNlbGVjdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjA0LDYgKzIwOSw5
IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIEludGVyYWN0aW9uCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQuc2hvdWxkTm90VXNlSUJlYW1JbkVkaXRhYmxlQ29udGVudCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzSW1hZ2VPdmVybGF5VGV4
dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmVsZW1lbnRDb250ZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0LmNwcAppbmRleCBiZTE1ODdiYWM5MDJhNzFmZDNiNTRjNTZiYjc4YThkNWEzMTRiMjRjLi5k
ZWM0NjVmMmZkNzk0OGQ3OGM0ZjJjMDNjYTM5NjFmM2Q5ZGM2NTY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAgdm9pZCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlu
Y2x1ZGVIYXNEb3VibGVDbGlja0hhbmRsZXI7CiAgICAgZW5jb2RlciA8PCBpbmNsdWRlSW1hZ2VE
YXRhOwogICAgIGVuY29kZXIgPDwgbGlua0luZGljYXRvclNob3VsZEhhdmVMZWdhY3lNYXJnaW5z
OworICAgIGVuY29kZXIgPDwgZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50OwogfQogCiBi
b29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYgcmVzdWx0KQpAQCAtNjcsNiAr
NjgsOSBAQCBib29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBJbnRlcmFjdGlvbkluZgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmxpbmtJbmRpY2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lucykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmRpc2FsbG93VXNl
ckFnZW50U2hhZG93Q29udGVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC05MSw2ICs5NSw5IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlv
blJlcXVlc3Q6OmlzVmFsaWRGb3JSZXF1ZXN0KGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpCiAg
ICAgaWYgKG90aGVyLmxpbmtJbmRpY2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lucyAhPSBsaW5r
SW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1hcmdpbnMpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAorICAgIGlmIChvdGhlci5kaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQgIT0gZGlzYWxs
b3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBy
ZXR1cm4gKG90aGVyLnBvaW50IC0gcG9pbnQpLmRpYWdvbmFsTGVuZ3RoU3F1YXJlZCgpIDw9IHJh
ZGl1cyAqIHJhZGl1czsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgKaW5kZXggZDAyMGU4ZDEyNzZk
YjE1ZjNiYTY2YjBkZjkzZDQxYzE3NzUxNDA4OC4uMzI2ODU5OWFkZDE1ZTdhNGZhNmU5NWM0Njg2
ZTQ2OTM3YjhhYzQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVy
YWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgc3RydWN0
IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHsKICAgICBib29sIGluY2x1ZGVJbWFnZURh
dGEgeyBmYWxzZSB9OwogCiAgICAgYm9vbCBsaW5rSW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1h
cmdpbnMgeyBmYWxzZSB9OworICAgIGJvb2wgZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50
IHsgZmFsc2UgfTsKIAogICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KCkgeyB9CiAg
ICAgZXhwbGljaXQgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6SW50UG9p
bnQgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggOGYyMGJmZTExNWY1M2IzNmE0NDA1ZTkwNjliNzBk
ODE4MmViYmFmOS4uZTU1ZTNkNjE4Y2E0NmFmMjU5MmEwMmVlMzA5ZTQwNmNmNzQ4YWZjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaApAQCAtNDc1LDYgKzQ3NSw3IEBAIGVudW0gY2xhc3MgUHJvY2VlZFdpdGhJbWFn
ZUV4dHJhY3Rpb24gOiBib29sIHsKICAgICBWZWN0b3I8QmxvY2tQdHI8dm9pZChXZWJLaXQ6OlBy
b2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uKT4+IF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5n
SW1hZ2VFeHRyYWN0aW9uOwogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxV
SU1lbnU+IF9pbWFnZUV4dHJhY3Rpb25Db250ZXh0TWVudTsKKyAgICBCT09MIF9jb250ZXh0TWVu
dVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGltZW91dDsKICNlbmRpZiAvLyBVU0UoVUlD
T05URVhUTUVOVSkKICNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggMGZkMGM1ODE2MjE2N2UzYWViZjJkMjdlZTBjYWNkNjU1M2JiODJlZS4uNWYx
NGU1NzIyNzgzMzg4MDFlODFmMjg3YWYzM2JiODU5ZTYwYjk0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC05MDgsNiArOTA4LDEwIEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgogICAgIF9pc0NoYW5n
aW5nRm9jdXMgPSBOTzsKICAgICBfaXNCbHVycmluZ0ZvY3VzZWRFbGVtZW50ID0gTk87CiAKKyNp
ZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgX2Nv
bnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0ID0gTk87CisjZW5k
aWYKKwogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogICAgIF9kYXRhTGlzdFRleHRTdWdn
ZXN0aW9uc0lucHV0VmlldyA9IG5pbDsKICAgICBfZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnMgPSBu
aWw7CkBAIC05NjQsNiArOTY4LDEwIEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0aW9uCiAKICAg
ICBfdHJlYXRBc0NvbnRlbnRFZGl0YWJsZVVudGlsTmV4dEVkaXRvclN0YXRlVXBkYXRlID0gTk87
CiAKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisg
ICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0ID0gTk87
CisjZW5kaWYKKwogICAgIGlmIChfaW50ZXJhY3Rpb25WaWV3c0NvbnRhaW5lclZpZXcpIHsKICAg
ICAgICAgW3NlbGYubGF5ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidHJhbnNm
b3JtIiBjb250ZXh0OldLQ29udGVudFZpZXdLVk9UcmFuc2Zvcm1Db250ZXh0XTsKICAgICAgICAg
W19pbnRlcmFjdGlvblZpZXdzQ29udGFpbmVyVmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKQEAg
LTIzMDcsNiArMjMxNSwxMSBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVS
ZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVxdWlyZQogICAgIGlmIChbb3Ro
ZXJHZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIuY2xhc3NdKQogICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyICopb3RoZXJHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVy
Omdlc3R1cmVSZWNvZ25pemVyXTsKIAorI2lmIFVTRShVSUNPTlRFWFRNRU5VKQorICAgIGlmIChn
ZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VFeHRyYWN0aW9uVGltZW91dEdlc3R1cmVSZWNvZ25p
emVyICYmIG90aGVyR2VzdHVyZVJlY29nbml6ZXIgPT0gW19jb250ZXh0TWVudUludGVyYWN0aW9u
IGdlc3R1cmVSZWNvZ25pemVyRm9yRmFpbHVyZVJlbGF0aW9uc2hpcHNdKQorICAgICAgICByZXR1
cm4gWUVTOworI2VuZGlmCisKICAgICByZXR1cm4gTk87CiB9CiAKQEAgLTIzMTUsNiArMjMyOCwx
MSBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2Vz
dHVyZVJlY29nbml6ZXIgc2hvdWxkQmVSZXF1aQogICAgIGlmIChbZ2VzdHVyZVJlY29nbml6ZXIg
aXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKICAgICAg
ICAgcmV0dXJuIFsoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25p
emVyIHNob3VsZERlZmVyR2VzdHVyZVJlY29nbml6ZXI6b3RoZXJHZXN0dXJlUmVjb2duaXplcl07
CiAKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKKyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0g
W19jb250ZXh0TWVudUludGVyYWN0aW9uIGdlc3R1cmVSZWNvZ25pemVyRm9yRmFpbHVyZVJlbGF0
aW9uc2hpcHNdICYmIG90aGVyR2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlRXh0cmFjdGlvblRp
bWVvdXRHZXN0dXJlUmVjb2duaXplcikKKyAgICAgICAgcmV0dXJuIFlFUzsKKyNlbmRpZgorCiAg
ICAgcmV0dXJuIE5POwogfQogCkBAIC0zMDQ4LDYgKzMwNjYsMTIgQEAgLSAodm9pZCljbGVhclNl
bGVjdGlvbgogICAgIF9wYWdlLT5jbGVhclNlbGVjdGlvbigpOwogfQogCistICh2b2lkKV9pbnZh
bGlkYXRlQ3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb24KK3sKKyAgICBfaGFzVmFsaWRQb3NpdGlv
bkluZm9ybWF0aW9uID0gTk87CisgICAgX3Bvc2l0aW9uSW5mb3JtYXRpb24gPSB7IH07Cit9CisK
IC0gKHZvaWQpX3Bvc2l0aW9uSW5mb3JtYXRpb25EaWRDaGFuZ2U6KGNvbnN0IFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm8KIHsKICAgICBpZiAoX2xhc3RPdXRz
dGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0ICYmIGluZm8ucmVxdWVzdC5pc1ZhbGlk
Rm9yUmVxdWVzdCgqX2xhc3RPdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KSkK
QEAgLTQ0OTMsOCArNDUxNyw3IEBAIC0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWUK
ICAgICBfdGV4dEludGVyYWN0aW9uRGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnQgPSBOTzsKICAgICBf
YWN0aXZlVGV4dEludGVyYWN0aW9uQ291bnQgPSAwOwogICAgIF90cmVhdEFzQ29udGVudEVkaXRh
YmxlVW50aWxOZXh0RWRpdG9yU3RhdGVVcGRhdGUgPSBOTzsKLSAgICBfaGFzVmFsaWRQb3NpdGlv
bkluZm9ybWF0aW9uID0gTk87Ci0gICAgX3Bvc2l0aW9uSW5mb3JtYXRpb24gPSB7IH07CisgICAg
W3NlbGYgX2ludmFsaWRhdGVDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKICNpZiAh
VVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKQEAgLTk5NTQsMTMgKzk5NzcsMTkgQEAgLSAo
VUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNv
bnRleHRNZW51SW50ZXJhY3Rpb24KIAogLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjoo
VUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXJhdGlvbkZvck1l
bnVBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIGNvbXBsZXRpb246KHZvaWQoXikoVUlDb250
ZXh0TWVudUNvbmZpZ3VyYXRpb24gKikpY29tcGxldGlvbgogeworI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQorICAgIEJPT0wgdHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0ID0g
c3RkOjpleGNoYW5nZShfY29udGV4dE1lbnVXYXNUcmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRp
bWVvdXQsIE5PKTsKKyNlbHNlCisgICAgQk9PTCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRp
bWVvdXQgPSBOTzsKKyNlbmRpZgorCiAgICAgaWYgKCFfd2ViVmlldykKICAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb24obmlsKTsKIAogICAgIGlmICghc2VsZi53ZWJWaWV3LmNvbmZpZ3VyYXRpb24u
X2xvbmdQcmVzc0FjdGlvbnNFbmFibGVkKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbihuaWwp
OwogCi0gICAgYXV0byBnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWUgPSBbd2Vha1NlbGYgPSBX
ZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgaW50ZXJhY3Rpb24gPSByZXRhaW5QdHIo
aW50ZXJhY3Rpb24pLCBjb21wbGV0aW9uID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb24pXSAoV2Vi
S2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbiBwcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlv
bikgeworICAgIGF1dG8gZ2V0Q29uZmlndXJhdGlvbkFuZENvbnRpbnVlID0gW3dlYWtTZWxmID0g
V2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIGludGVyYWN0aW9uID0gcmV0YWluUHRy
KGludGVyYWN0aW9uKSwgY29tcGxldGlvbiA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uKSwgdHJp
Z2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0XSAoV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdl
RXh0cmFjdGlvbiBwcm9jZWVkV2l0aEltYWdlRXh0cmFjdGlvbikgewogICAgICAgICBhdXRvIHN0
cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKICAgICAgICAgaWYgKCFzdHJvbmdTZWxmIHx8IHBy
b2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uID09IFdlYktpdDo6UHJvY2VlZFdpdGhJbWFnZUV4dHJh
Y3Rpb246OlllcykgewogICAgICAgICAgICAgY29tcGxldGlvbihuaWwpOwpAQCAtOTk3Niw2ICsx
MDAwNSw3IEBAIC0gKHZvaWQpX2NvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIGNvbmZpZ3VyCiAgICAgICAgIFdlYktpdDo6SW50ZXJh
Y3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdCB7IFdlYkNvcmU6OnJvdW5kZWRJbnRQb2lu
dChbaW50ZXJhY3Rpb24gbG9jYXRpb25JblZpZXc6c3Ryb25nU2VsZi5nZXQoKV0pIH07CiAgICAg
ICAgIHJlcXVlc3QuaW5jbHVkZVNuYXBzaG90ID0gdHJ1ZTsKICAgICAgICAgcmVxdWVzdC5pbmNs
dWRlTGlua0luZGljYXRvciA9IHRydWU7CisgICAgICAgIHJlcXVlc3QuZGlzYWxsb3dVc2VyQWdl
bnRTaGFkb3dDb250ZW50ID0gdHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0OwogICAg
ICAgICByZXF1ZXN0LmxpbmtJbmRpY2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lucyA9ICFbc3Ry
b25nU2VsZiBfc2hvdWxkVXNlQ29udGV4dE1lbnVzXTsKIAogICAgICAgICBbc3Ryb25nU2VsZiBk
b0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxX
S0NvbnRlbnRWaWV3PihzdHJvbmdTZWxmLmdldCgpKSwgY29tcGxldGlvbl0gKFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggOTJiZjdkN2Q1OTkyN2Fm
NzA5MDUyODE4MzIxYTBmMjAyY2YyNGU5Yi4uMWFmZjA5NDFiOTNlYTE2MTVkNTY1YTNiODFjZTg5
NzcwMzEyOTIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI2NjUsMTkgKzI2NjUsMzIgQEAgc3RhdGljIHZvaWQgZGF0
YURldGVjdG9yTGlua1Bvc2l0aW9uSW5mb3JtYXRpb24oRWxlbWVudCYgZWxlbWVudCwgSW50ZXJh
Y3Rpb25JbmYKIAogI2VuZGlmCiAKLXN0YXRpYyB2b2lkIGltYWdlUG9zaXRpb25JbmZvcm1hdGlv
bihXZWJQYWdlJiBwYWdlLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBJbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdCYgcmVxdWVzdCwgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24m
IGluZm8pCitzdGF0aWMgT3B0aW9uYWw8c3RkOjpwYWlyPFJlbmRlckltYWdlJiwgSW1hZ2UmPj4g
aW1hZ2VSZW5kZXJlckFuZEltYWdlKEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgYXV0byYgcmVu
ZGVySW1hZ2UgPSBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKihlbGVtZW50LnJlbmRlcmVyKCkpKTsK
KyAgICBpZiAoIWlzPFJlbmRlckltYWdlPihlbGVtZW50LnJlbmRlcmVyKCkpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgYXV0byYgcmVuZGVySW1hZ2UgPSBkb3duY2FzdDxS
ZW5kZXJJbWFnZT4oKmVsZW1lbnQucmVuZGVyZXIoKSk7CiAgICAgaWYgKCFyZW5kZXJJbWFnZS5j
YWNoZWRJbWFnZSgpIHx8IHJlbmRlckltYWdlLmNhY2hlZEltYWdlKCktPmVycm9yT2NjdXJyZWQo
KSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAg
YXV0byogaW1hZ2UgPSByZW5kZXJJbWFnZS5jYWNoZWRJbWFnZSgpLT5pbWFnZUZvclJlbmRlcmVy
KCZyZW5kZXJJbWFnZSk7CiAgICAgaWYgKCFpbWFnZSB8fCBpbWFnZS0+d2lkdGgoKSA8PSAxIHx8
IGltYWdlLT5oZWlnaHQoKSA8PSAxKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIHt7IHJlbmRlckltYWdlLCAqaW1hZ2UgfX07Cit9CisKK3N0YXRpYyB2b2lkIGlt
YWdlUG9zaXRpb25JbmZvcm1hdGlvbihXZWJQYWdlJiBwYWdlLCBFbGVtZW50JiBlbGVtZW50LCBj
b25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYgcmVxdWVzdCwgSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24mIGluZm8pCit7CisgICAgYXV0byByZW5kZXJlckFuZEltYWdl
ID0gaW1hZ2VSZW5kZXJlckFuZEltYWdlKGVsZW1lbnQpOworICAgIGlmICghcmVuZGVyZXJBbmRJ
bWFnZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgYXV0byYgW3JlbmRlckltYWdlLCBpbWFnZV0g
PSAqcmVuZGVyZXJBbmRJbWFnZTsKICAgICBpbmZvLmlzSW1hZ2UgPSB0cnVlOwogICAgIGluZm8u
aW1hZ2VVUkwgPSBlbGVtZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwocmVuZGVySW1hZ2UuY2Fj
aGVkSW1hZ2UoKS0+dXJsKCkuc3RyaW5nKCkpOwotICAgIGluZm8uaXNBbmltYXRlZEltYWdlID0g
aW1hZ2UtPmlzQW5pbWF0ZWQoKTsKKyAgICBpbmZvLmlzQW5pbWF0ZWRJbWFnZSA9IGltYWdlLmlz
QW5pbWF0ZWQoKTsKIAogICAgIGlmIChyZXF1ZXN0LmluY2x1ZGVTbmFwc2hvdCB8fCByZXF1ZXN0
LmluY2x1ZGVJbWFnZURhdGEpCiAgICAgICAgIGluZm8uaW1hZ2UgPSBjcmVhdGVTaGFyZWFibGVC
aXRtYXAocmVuZGVySW1hZ2UsIHNjcmVlblNpemUoKSAqIHBhZ2UuY29yZVBhZ2UoKS0+ZGV2aWNl
U2NhbGVGYWN0b3IoKSk7CkBAIC0yNzMzLDEyICsyNzQ2LDE3IEBAIHN0YXRpYyB2b2lkIGVsZW1l
bnRQb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQsIGNv
bnN0IEluCiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LnJlbmRlcmVyKCkpIHsK
ICAgICAgICAgYm9vbCBzaG91bGRDb2xsZWN0SW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uID0gcmVu
ZGVyZXItPmlzUmVuZGVySW1hZ2UoKTsKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKLSAg
ICAgICAgaWYgKGlubmVyTm9uU2hhcmVkTm9kZSAmJiBIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJs
YXlUZXh0KCppbm5lck5vblNoYXJlZE5vZGUpKQorICAgICAgICBpZiAoc2hvdWxkQ29sbGVjdElt
YWdlUG9zaXRpb25JbmZvcm1hdGlvbiAmJiBpbm5lck5vblNoYXJlZE5vZGUgJiYgSFRNTEVsZW1l
bnQ6OmlzSW1hZ2VPdmVybGF5VGV4dCgqaW5uZXJOb25TaGFyZWROb2RlKSkgewogICAgICAgICAg
ICAgc2hvdWxkQ29sbGVjdEltYWdlUG9zaXRpb25JbmZvcm1hdGlvbiA9IGZhbHNlOwotI2Vsc2UK
LSAgICAgICAgVU5VU0VEX1BBUkFNKGlubmVyTm9uU2hhcmVkTm9kZSk7Ci0jZW5kaWYKKyAgICAg
ICAgICAgIGluZm8uaXNJbWFnZU92ZXJsYXlUZXh0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChy
ZXF1ZXN0LmluY2x1ZGVJbWFnZURhdGEpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byByZW5k
ZXJlckFuZEltYWdlID0gaW1hZ2VSZW5kZXJlckFuZEltYWdlKGVsZW1lbnQpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGF1dG8mIFtyZW5kZXJJbWFnZSwgaW1hZ2VdID0gKnJlbmRlcmVyQW5kSW1h
Z2U7CisgICAgICAgICAgICAgICAgICAgIGluZm8uaW1hZ2VVUkwgPSBlbGVtZW50LmRvY3VtZW50
KCkuY29tcGxldGVVUkwocmVuZGVySW1hZ2UuY2FjaGVkSW1hZ2UoKS0+dXJsKCkuc3RyaW5nKCkp
OworICAgICAgICAgICAgICAgICAgICBpbmZvLmltYWdlID0gY3JlYXRlU2hhcmVhYmxlQml0bWFw
KHJlbmRlckltYWdlLCBzY3JlZW5TaXplKCkgKiBwYWdlLmNvcmVQYWdlKCktPmRldmljZVNjYWxl
RmFjdG9yKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQog
ICAgICAgICBpZiAoc2hvdWxkQ29sbGVjdEltYWdlUG9zaXRpb25JbmZvcm1hdGlvbikKICAgICAg
ICAgICAgIGltYWdlUG9zaXRpb25JbmZvcm1hdGlvbihwYWdlLCBlbGVtZW50LCByZXF1ZXN0LCBp
bmZvKTsKICAgICAgICAgYm91bmRzUG9zaXRpb25JbmZvcm1hdGlvbigqcmVuZGVyZXIsIGluZm8p
OwpAQCAtMjc1OSw2ICsyNzc3LDggQEAgc3RhdGljIHZvaWQgc2VsZWN0aW9uUG9zaXRpb25JbmZv
cm1hdGlvbihXZWJQYWdlJiBwYWdlLCBjb25zdCBJbnRlcmFjdGlvbkluZm9ybWEKIAogICAgIFJl
bmRlck9iamVjdCogcmVuZGVyZXIgPSBoaXROb2RlLT5yZW5kZXJlcigpOwogICAgIGJvdW5kc1Bv
c2l0aW9uSW5mb3JtYXRpb24oKnJlbmRlcmVyLCBpbmZvKTsKKworICAgIGluZm8uaXNTZWxlY3Rl
ZCA9IHJlc3VsdC5pc1NlbGVjdGVkKCk7CiAgICAgCiAgICAgaWYgKGlzPEVsZW1lbnQ+KCpoaXRO
b2RlKSkgewogICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKmhp
dE5vZGUpOwpAQCAtMjkyMSw4ICsyOTQxLDE2IEBAIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uIFdlYlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JCiAg
ICAgICAgIGluZm8ubm9kZUF0UG9zaXRpb25IYXNEb3VibGVDbGlja0hhbmRsZXIgPSBtX3BhZ2Ut
Pm1haW5GcmFtZSgpLm5vZGVSZXNwb25kaW5nVG9Eb3VibGVDbGlja0V2ZW50KHJlcXVlc3QucG9p
bnQsIGFkanVzdGVkUG9pbnQpOwogCiAgICAgYXV0byYgZXZlbnRIYW5kbGVyID0gbV9wYWdlLT5t
YWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKTsKLSAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRl
c3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25s
eSwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93RnJhbWVTY3JvbGxiYXJzLCBIaXRUZXN0UmVxdWVzdDo6
QWxsb3dWaXNpYmxlQ2hpbGRGcmFtZUNvbnRlbnRPbmx5IH07Ci0gICAgYXV0byBoaXRUZXN0UmVz
dWx0ID0gZXZlbnRIYW5kbGVyLmhpdFRlc3RSZXN1bHRBdFBvaW50KHJlcXVlc3QucG9pbnQsIGhp
dFR5cGUpOworICAgIGF1dG8gaGl0VGVzdFJlcXVlc3RUeXBlcyA9IE9wdGlvblNldDxIaXRUZXN0
UmVxdWVzdDo6UmVxdWVzdFR5cGU+IHsKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5
LAorICAgICAgICBIaXRUZXN0UmVxdWVzdDo6QWxsb3dGcmFtZVNjcm9sbGJhcnMsCisgICAgICAg
IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd1Zpc2libGVDaGlsZEZyYW1lQ29udGVudE9ubHksCisgICAg
fTsKKworICAgIGlmIChyZXF1ZXN0LmRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCkKKyAg
ICAgICAgaGl0VGVzdFJlcXVlc3RUeXBlcy5hZGQoSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNl
ckFnZW50U2hhZG93Q29udGVudCk7CisKKyAgICBhdXRvIGhpdFRlc3RSZXN1bHQgPSBldmVudEhh
bmRsZXIuaGl0VGVzdFJlc3VsdEF0UG9pbnQocmVxdWVzdC5wb2ludCwgaGl0VGVzdFJlcXVlc3RU
eXBlcyk7CiAgICAgaWYgKGF1dG8qIGhpdEZyYW1lID0gaGl0VGVzdFJlc3VsdC5pbm5lck5vZGVG
cmFtZSgpKSB7CiAgICAgICAgIGluZm8uY3Vyc29yID0gaGl0RnJhbWUtPmV2ZW50SGFuZGxlcigp
LnNlbGVjdEN1cnNvcihoaXRUZXN0UmVzdWx0LCBmYWxzZSk7CiAgICAgICAgIGlmIChyZXF1ZXN0
LmluY2x1ZGVDYXJldENvbnRleHQpCg==
</data>
<flag name="commit-queue"
          id="444466"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424718</attachid>
            <date>2021-03-30 17:35:39 -0700</date>
            <delta_ts>2021-03-30 22:05:49 -0700</delta_ts>
            <desc>Fix non-internal iOS</desc>
            <filename>bug-223967-20210330173538.patch</filename>
            <type>text/plain</type>
            <size>19173</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI5MTYzYTVkM2Y5OWQxYWM2
MzUyZDc1MDY5YzViZDhlYzViNzNhMTQuLmZlODk1MDIwMTliZWJlNjY1ZTg2YjM1MmVkZmVhZGZl
N2E3NmI1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMDMtMzAgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRmFsbCBiYWNr
IHRvIGNvbnRleHQgbWVudSBwcmVzZW50YXRpb24gYWZ0ZXIgbG9uZyBwcmVzc2luZyBpbWFnZSBv
dmVybGF5IHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMzk2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzYwMjg2MjA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRo
aXMgYmVoYXZpb3I7IHNlZSA8cmRhcjovL3Byb2JsZW0vNzYwMjg2MjA+IGZvciBtb3JlIGRldGFp
bHMuCisKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uLmg6CisgICAgICAgICogU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOjpkZWNvZGUpOgorCisgICAgICAgIEFkZCBhIGNvdXBsZSBvZiBuZXcgZmxh
Z3MgKGBpc1NlbGVjdGVkYCBhbmQgYGlzSW1hZ2VPdmVybGF5VGV4dGApIHRvIGluZGljYXRlIHdo
ZXRoZXIgdGhlIGludGVyYWN0aW9uIGlzIG92ZXIKKyAgICAgICAgc2VsZWN0ZWQgdGV4dCwgYW5k
IGFsc28gd2hldGhlciB0aGUgaW50ZXJhY3Rpb24gaXMgb3ZlciB0ZXh0IGluIGFuIGltYWdlIG92
ZXJsYXksIHJlc3BlY3RpdmVseS4KKworICAgICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvblJlcXVlc3Q6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0Ojppc1ZhbGlkRm9yUmVxdWVzdCBjb25zdCk6CisKKyAgICAg
ICAgQWRkIGEgbmV3IHBvc2l0aW9uIGluZm9ybWF0aW9uIHJlcXVlc3Qgb3B0aW9uIHRvIGlnbm9y
ZSB1c2VyIGFnZW50IHNoYWRvdyByb290IGNvbnRlbnQuCisKKyAgICAgICAgKiBTaGFyZWQvaW9z
L0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKworICAgICAgICBBZGQgYSBmbGFnIHRoYXQncyBz
ZXQgd2hlbiBgX2ltYWdlRXh0cmFjdGlvblRpbWVvdXRHZXN0dXJlUmVjb2duaXplcmAgaXMgcmVj
b2duaXplZCwgYW5kIGlzIGFib3V0IHRvIHByZXNlbnQgYQorICAgICAgICBjb250ZXh0IG1lbnUs
IGFuZCBpcyB1bnNldCB1cG9uIHN0YXJ0aW5nIHRoZSBjb250ZXh0IG1lbnUgcHJlc2VudGF0aW9u
LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBJbnRlcmFjdGlvbl0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJl
UmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXpl
cjpzaG91bGRCZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjpdKToKKworICAgICAg
ICBNYWtlIHRoZSB0aW1lb3V0IGdlc3R1cmUgKGBfaW1hZ2VFeHRyYWN0aW9uVGltZW91dEdlc3R1
cmVSZWNvZ25pemVyYCkgcmVxdWlyZSB0aGUgZmFpbHVyZSBvZiB0aGUgY29udGV4dCBtZW51Cisg
ICAgICAgIGluaXRpYXRpb24gZ2VzdHVyZSwgc3VjaCB0aGF0IHRoaXMgaW1hZ2UgZXh0cmFjdGlv
biB0aW1lb3V0IGdlc3R1cmUgd29uJ3QgdHJpZ2dlciBpZiB0aGUgY29udGV4dCBtZW51IGhhcwor
ICAgICAgICBhbHJlYWR5IGJlZW4gdHJpZ2dlcmVkLgorCisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2ludmFsaWRhdGVDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lXSk6CisKKyAgICAgICAgUHVs
bCBsb2dpYyBmb3IgcmVzZXR0aW5nIGNhY2hlZCBwb3NpdGlvbiBpbmZvcm1hdGlvbiBpbnRvIGEg
aGVscGVyLCBhbmQgY2FsbCBpdCBpbnNpZGUKKyAgICAgICAgYC1fZGlkQ29tbWl0TG9hZEZvck1h
aW5GcmFtZWAuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29udGV4dE1lbnVJbnRlcmFj
dGlvbjpjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246Y29tcGxldGlvbjpdKToKKworICAg
ICAgICBSZXNldCB0aGUgbmV3IGZsYWcgKGBfY29udGV4dE1lbnVXYXNUcmlnZ2VyZWRCeUltYWdl
RXh0cmFjdGlvblRpbWVvdXRgKSBpZiBuZWNlc3NhcnksIGFuZCB1c2UgaXRzIGV4aXN0aW5nIHZh
bHVlCisgICAgICAgIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIHNob3VsZCBpZ25vcmUgVUEgc2hh
ZG93IHJvb3QgY29udGVudCB3aGVuIHBlcmZvcm1pbmcgYSBoaXQtdGVzdCBmb3IgdGhlIGNvbnRl
eHQgbWVudQorICAgICAgICBjb25maWd1cmF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjppbWFnZVJlbmRlcmVy
QW5kSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjppbWFnZVBvc2l0aW9uSW5mb3JtYXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjplbGVtZW50UG9zaXRpb25JbmZvcm1hdGlvbik6CisKKyAgICAgICAg
QWRkaXRpb25hbGx5IHN1cHBseSB0aGUgaW1hZ2UgVVJMIGFuZCBpbWFnZSBkYXRhIGlmIGBpbmNs
dWRlSW1hZ2VEYXRhYCBpcyBzZXQsIGV2ZW4gaWYgdGhlIGhpdC10ZXN0ZWQgbm9kZSBpcworICAg
ICAgICBqdXN0IGEgdGV4dCBub2RlIHVuZGVybmVhdGggYW4gaW1hZ2UgZWxlbWVudCdzIG92ZXJs
YXkuCisKKyAgICAgICAgKFdlYktpdDo6c2VsZWN0aW9uUG9zaXRpb25JbmZvcm1hdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24pOgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciB0aGUgbmV3IHBvc2l0aW9uIGluZm9ybWF0aW9uIGZsYWdzLgorCiAy
MDIxLTAzLTI5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIHdheSBmb3IgaW50ZXJuYWwgY2xpZW50cyB0byBoaXQtdGVzdCBmb3Igc2VsZWN0
YWJsZSB0ZXh0IGluIHVzZXIgYWdlbnQgc2hhZG93IHJvb3RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5o
CmluZGV4IDU0MDdkZjUxZmNiY2FkMjdmYWMyMjI3MGU1ZGQyNDdiZjMyMzJiNTUuLmFlZTM3ODNm
ZWIyYTg4YmYyN2U0OWIxMzk2N2M4NWY2NGE3MzA3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5o
CkBAIC01NCw2ICs1NCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biB7CiAgICAgYm9vbCBjYW5CZVZhbGlkIHsgdHJ1ZSB9OwogICAgIE9wdGlvbmFsPGJvb2w+IG5v
ZGVBdFBvc2l0aW9uSGFzRG91YmxlQ2xpY2tIYW5kbGVyOwogICAgIGJvb2wgaXNTZWxlY3RhYmxl
IHsgZmFsc2UgfTsKKyAgICBib29sIGlzU2VsZWN0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgcHJl
ZmVyc0RyYWdnaW5nT3ZlclRleHRTZWxlY3Rpb24geyBmYWxzZSB9OwogICAgIGJvb2wgaXNOZWFy
TWFya2VkVGV4dCB7IGZhbHNlIH07CiAgICAgYm9vbCB0b3VjaENhbGxvdXRFbmFibGVkIHsgdHJ1
ZSB9OwpAQCAtNzAsNiArNzEsNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gewogICAgIGJvb2wgcHJldmVudFRleHRJbnRlcmFjdGlvbiB7IGZhbHNlIH07CiAjZW5k
aWYKICAgICBib29sIHNob3VsZE5vdFVzZUlCZWFtSW5FZGl0YWJsZUNvbnRlbnQgeyBmYWxzZSB9
OworICAgIGJvb2wgaXNJbWFnZU92ZXJsYXlUZXh0IHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpG
bG9hdFBvaW50IGFkanVzdGVkUG9pbnRGb3JOb2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHM7CiAg
ICAgVVJMIHVybDsKICAgICBVUkwgaW1hZ2VVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KaW5k
ZXggOTUxMTM5YThmN2Q2ZDVkM2VjNTViOWY1ZTAyOTU4YTBhM2E1NjVkOS4uMDE1OWQ4OWNhMDBj
ZGE4MmY1N2IxZmJiMjYyMjA3ZTEwZTdjN2QwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQpA
QCAtNDUsNiArNDUsNyBAQCB2b2lkIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgY2FuQmVW
YWxpZDsKICAgICBlbmNvZGVyIDw8IG5vZGVBdFBvc2l0aW9uSGFzRG91YmxlQ2xpY2tIYW5kbGVy
OwogICAgIGVuY29kZXIgPDwgaXNTZWxlY3RhYmxlOworICAgIGVuY29kZXIgPDwgaXNTZWxlY3Rl
ZDsKICAgICBlbmNvZGVyIDw8IHByZWZlcnNEcmFnZ2luZ092ZXJUZXh0U2VsZWN0aW9uOwogICAg
IGVuY29kZXIgPDwgaXNOZWFyTWFya2VkVGV4dDsKICAgICBlbmNvZGVyIDw8IHRvdWNoQ2FsbG91
dEVuYWJsZWQ7CkBAIC04NSw2ICs4Niw3IEBAIHZvaWQgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBwcmV2ZW50VGV4dEludGVyYWN0aW9uOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBzaG91
bGROb3RVc2VJQmVhbUluRWRpdGFibGVDb250ZW50OworICAgIGVuY29kZXIgPDwgaXNJbWFnZU92
ZXJsYXlUZXh0OwogICAgIGVuY29kZXIgPDwgZWxlbWVudENvbnRleHQ7CiB9CiAKQEAgLTEwMiw2
ICsxMDQsOSBAQCBib29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBJbnRlcmFjdGlvbgogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmlzU2VsZWN0YWJsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzU2VsZWN0ZWQpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5wcmVmZXJzRHJhZ2dpbmdPdmVy
VGV4dFNlbGVjdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjA0LDYgKzIwOSw5
IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIEludGVyYWN0aW9uCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQuc2hvdWxkTm90VXNlSUJlYW1JbkVkaXRhYmxlQ29udGVudCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzSW1hZ2VPdmVybGF5VGV4
dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmVsZW1lbnRDb250ZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0LmNwcAppbmRleCBiZTE1ODdiYWM5MDJhNzFmZDNiNTRjNTZiYjc4YThkNWEzMTRiMjRjLi5k
ZWM0NjVmMmZkNzk0OGQ3OGM0ZjJjMDNjYTM5NjFmM2Q5ZGM2NTY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAgdm9pZCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlu
Y2x1ZGVIYXNEb3VibGVDbGlja0hhbmRsZXI7CiAgICAgZW5jb2RlciA8PCBpbmNsdWRlSW1hZ2VE
YXRhOwogICAgIGVuY29kZXIgPDwgbGlua0luZGljYXRvclNob3VsZEhhdmVMZWdhY3lNYXJnaW5z
OworICAgIGVuY29kZXIgPDwgZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50OwogfQogCiBi
b29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYgcmVzdWx0KQpAQCAtNjcsNiAr
NjgsOSBAQCBib29sIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBJbnRlcmFjdGlvbkluZgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmxpbmtJbmRpY2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lucykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmRpc2FsbG93VXNl
ckFnZW50U2hhZG93Q29udGVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC05MSw2ICs5NSw5IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlv
blJlcXVlc3Q6OmlzVmFsaWRGb3JSZXF1ZXN0KGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpCiAg
ICAgaWYgKG90aGVyLmxpbmtJbmRpY2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lucyAhPSBsaW5r
SW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1hcmdpbnMpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAorICAgIGlmIChvdGhlci5kaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQgIT0gZGlzYWxs
b3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBy
ZXR1cm4gKG90aGVyLnBvaW50IC0gcG9pbnQpLmRpYWdvbmFsTGVuZ3RoU3F1YXJlZCgpIDw9IHJh
ZGl1cyAqIHJhZGl1czsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgKaW5kZXggZDAyMGU4ZDEyNzZk
YjE1ZjNiYTY2YjBkZjkzZDQxYzE3NzUxNDA4OC4uMzI2ODU5OWFkZDE1ZTdhNGZhNmU5NWM0Njg2
ZTQ2OTM3YjhhYzQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVy
YWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgc3RydWN0
IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHsKICAgICBib29sIGluY2x1ZGVJbWFnZURh
dGEgeyBmYWxzZSB9OwogCiAgICAgYm9vbCBsaW5rSW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1h
cmdpbnMgeyBmYWxzZSB9OworICAgIGJvb2wgZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50
IHsgZmFsc2UgfTsKIAogICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KCkgeyB9CiAg
ICAgZXhwbGljaXQgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6SW50UG9p
bnQgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggOGYyMGJmZTExNWY1M2IzNmE0NDA1ZTkwNjliNzBk
ODE4MmViYmFmOS4uZTU1ZTNkNjE4Y2E0NmFmMjU5MmEwMmVlMzA5ZTQwNmNmNzQ4YWZjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaApAQCAtNDc1LDYgKzQ3NSw3IEBAIGVudW0gY2xhc3MgUHJvY2VlZFdpdGhJbWFn
ZUV4dHJhY3Rpb24gOiBib29sIHsKICAgICBWZWN0b3I8QmxvY2tQdHI8dm9pZChXZWJLaXQ6OlBy
b2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uKT4+IF9hY3Rpb25zVG9QZXJmb3JtQWZ0ZXJQZW5kaW5n
SW1hZ2VFeHRyYWN0aW9uOwogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxV
SU1lbnU+IF9pbWFnZUV4dHJhY3Rpb25Db250ZXh0TWVudTsKKyAgICBCT09MIF9jb250ZXh0TWVu
dVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGltZW91dDsKICNlbmRpZiAvLyBVU0UoVUlD
T05URVhUTUVOVSkKICNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggMGZkMGM1ODE2MjE2N2UzYWViZjJkMjdlZTBjYWNkNjU1M2JiODJlZS4uYjhk
ZmZiY2E4ZTFjYjI3Y2NiMTIxY2FiYzdlNjJlNzJlZDhhNjZjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC05MDgsNiArOTA4LDEwIEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgogICAgIF9pc0NoYW5n
aW5nRm9jdXMgPSBOTzsKICAgICBfaXNCbHVycmluZ0ZvY3VzZWRFbGVtZW50ID0gTk87CiAKKyNp
ZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgX2Nv
bnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0ID0gTk87CisjZW5k
aWYKKwogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogICAgIF9kYXRhTGlzdFRleHRTdWdn
ZXN0aW9uc0lucHV0VmlldyA9IG5pbDsKICAgICBfZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnMgPSBu
aWw7CkBAIC05NjQsNiArOTY4LDEwIEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0aW9uCiAKICAg
ICBfdHJlYXRBc0NvbnRlbnRFZGl0YWJsZVVudGlsTmV4dEVkaXRvclN0YXRlVXBkYXRlID0gTk87
CiAKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisg
ICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0ID0gTk87
CisjZW5kaWYKKwogICAgIGlmIChfaW50ZXJhY3Rpb25WaWV3c0NvbnRhaW5lclZpZXcpIHsKICAg
ICAgICAgW3NlbGYubGF5ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidHJhbnNm
b3JtIiBjb250ZXh0OldLQ29udGVudFZpZXdLVk9UcmFuc2Zvcm1Db250ZXh0XTsKICAgICAgICAg
W19pbnRlcmFjdGlvblZpZXdzQ29udGFpbmVyVmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKQEAg
LTIzMDcsNiArMjMxNSwxMSBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVS
ZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVxdWlyZQogICAgIGlmIChbb3Ro
ZXJHZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIuY2xhc3NdKQogICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyICopb3RoZXJHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVy
Omdlc3R1cmVSZWNvZ25pemVyXTsKIAorI2lmIFVTRShVSUNPTlRFWFRNRU5VKSAmJiBFTkFCTEUo
SU1BR0VfRVhUUkFDVElPTikKKyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlRXh0
cmFjdGlvblRpbWVvdXRHZXN0dXJlUmVjb2duaXplciAmJiBvdGhlckdlc3R1cmVSZWNvZ25pemVy
ID09IFtfY29udGV4dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJlUmVjb2duaXplckZvckZhaWx1cmVS
ZWxhdGlvbnNoaXBzXSkKKyAgICAgICAgcmV0dXJuIFlFUzsKKyNlbmRpZgorCiAgICAgcmV0dXJu
IE5POwogfQogCkBAIC0yMzE1LDYgKzIzMjgsMTEgQEAgLSAoQk9PTClnZXN0dXJlUmVjb2duaXpl
cjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZEJlUmVxdWkK
ICAgICBpZiAoW2dlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplci5jbGFzc10pCiAgICAgICAgIHJldHVybiBbKFdLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25p
emVyOm90aGVyR2VzdHVyZVJlY29nbml6ZXJdOwogCisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBb
X2NvbnRleHRNZW51SW50ZXJhY3Rpb24gZ2VzdHVyZVJlY29nbml6ZXJGb3JGYWlsdXJlUmVsYXRp
b25zaGlwc10gJiYgb3RoZXJHZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VFeHRyYWN0aW9uVGlt
ZW91dEdlc3R1cmVSZWNvZ25pemVyKQorICAgICAgICByZXR1cm4gWUVTOworI2VuZGlmCisKICAg
ICByZXR1cm4gTk87CiB9CiAKQEAgLTMwNDgsNiArMzA2NiwxMiBAQCAtICh2b2lkKWNsZWFyU2Vs
ZWN0aW9uCiAgICAgX3BhZ2UtPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKKy0gKHZvaWQpX2ludmFs
aWRhdGVDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbgoreworICAgIF9oYXNWYWxpZFBvc2l0aW9u
SW5mb3JtYXRpb24gPSBOTzsKKyAgICBfcG9zaXRpb25JbmZvcm1hdGlvbiA9IHsgfTsKK30KKwog
LSAodm9pZClfcG9zaXRpb25JbmZvcm1hdGlvbkRpZENoYW5nZTooY29uc3QgV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mbwogewogICAgIGlmIChfbGFzdE91dHN0
YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgJiYgaW5mby5yZXF1ZXN0LmlzVmFsaWRG
b3JSZXF1ZXN0KCpfbGFzdE91dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QpKQpA
QCAtNDQ5Myw4ICs0NTE3LDcgQEAgLSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZQog
ICAgIF90ZXh0SW50ZXJhY3Rpb25EaWRDaGFuZ2VGb2N1c2VkRWxlbWVudCA9IE5POwogICAgIF9h
Y3RpdmVUZXh0SW50ZXJhY3Rpb25Db3VudCA9IDA7CiAgICAgX3RyZWF0QXNDb250ZW50RWRpdGFi
bGVVbnRpbE5leHRFZGl0b3JTdGF0ZVVwZGF0ZSA9IE5POwotICAgIF9oYXNWYWxpZFBvc2l0aW9u
SW5mb3JtYXRpb24gPSBOTzsKLSAgICBfcG9zaXRpb25JbmZvcm1hdGlvbiA9IHsgfTsKKyAgICBb
c2VsZiBfaW52YWxpZGF0ZUN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXTsKIH0KIAogI2lmICFV
U0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQpAQCAtOTk1NCwxMyArOTk3NywxOSBAQCAtIChV
SUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbgogCiAtICh2b2lkKV9jb250ZXh0TWVudUludGVyYWN0aW9uOihV
SUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25maWd1cmF0aW9uRm9yTWVu
dUF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gY29tcGxldGlvbjoodm9pZCheKShVSUNvbnRl
eHRNZW51Q29uZmlndXJhdGlvbiAqKSljb21wbGV0aW9uCiB7CisjaWYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCisgICAgQk9PTCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQgPSBz
dGQ6OmV4Y2hhbmdlKF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGlt
ZW91dCwgTk8pOworI2Vsc2UKKyAgICBCT09MIHRyaWdnZXJlZEJ5SW1hZ2VFeHRyYWN0aW9uVGlt
ZW91dCA9IE5POworI2VuZGlmCisKICAgICBpZiAoIV93ZWJWaWV3KQogICAgICAgICByZXR1cm4g
Y29tcGxldGlvbihuaWwpOwogCiAgICAgaWYgKCFzZWxmLndlYlZpZXcuY29uZmlndXJhdGlvbi5f
bG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uKG5pbCk7
CiAKLSAgICBhdXRvIGdldENvbmZpZ3VyYXRpb25BbmRDb250aW51ZSA9IFt3ZWFrU2VsZiA9IFdl
YWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpLCBpbnRlcmFjdGlvbiA9IHJldGFpblB0cihp
bnRlcmFjdGlvbiksIGNvbXBsZXRpb24gPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbildIChXZWJL
aXQ6OlByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uIHByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9u
KSB7CisgICAgYXV0byBnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWUgPSBbd2Vha1NlbGYgPSBX
ZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgaW50ZXJhY3Rpb24gPSByZXRhaW5QdHIo
aW50ZXJhY3Rpb24pLCBjb21wbGV0aW9uID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb24pLCB0cmln
Z2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXRdIChXZWJLaXQ6OlByb2NlZWRXaXRoSW1hZ2VF
eHRyYWN0aW9uIHByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uKSB7CiAgICAgICAgIGF1dG8gc3Ry
b25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwogICAgICAgICBpZiAoIXN0cm9uZ1NlbGYgfHwgcHJv
Y2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gPT0gV2ViS2l0OjpQcm9jZWVkV2l0aEltYWdlRXh0cmFj
dGlvbjo6WWVzKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uKG5pbCk7CkBAIC05OTc2LDYgKzEw
MDA1LDcgQEAgLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUlu
dGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXIKICAgICAgICAgV2ViS2l0OjpJbnRlcmFj
dGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0IHsgV2ViQ29yZTo6cm91bmRlZEludFBvaW50
KFtpbnRlcmFjdGlvbiBsb2NhdGlvbkluVmlldzpzdHJvbmdTZWxmLmdldCgpXSkgfTsKICAgICAg
ICAgcmVxdWVzdC5pbmNsdWRlU25hcHNob3QgPSB0cnVlOwogICAgICAgICByZXF1ZXN0LmluY2x1
ZGVMaW5rSW5kaWNhdG9yID0gdHJ1ZTsKKyAgICAgICAgcmVxdWVzdC5kaXNhbGxvd1VzZXJBZ2Vu
dFNoYWRvd0NvbnRlbnQgPSB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXQ7CiAgICAg
ICAgIHJlcXVlc3QubGlua0luZGljYXRvclNob3VsZEhhdmVMZWdhY3lNYXJnaW5zID0gIVtzdHJv
bmdTZWxmIF9zaG91bGRVc2VDb250ZXh0TWVudXNdOwogCiAgICAgICAgIFtzdHJvbmdTZWxmIGRv
QWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdL
Q29udGVudFZpZXc+KHN0cm9uZ1NlbGYuZ2V0KCkpLCBjb21wbGV0aW9uXSAoV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA5MmJmN2Q3ZDU5OTI3YWY3
MDkwNTI4MTgzMjFhMGYyMDJjZjI0ZTliLi4xYWZmMDk0MWI5M2VhMTYxNWQ1NjVhM2I4MWNlODk3
NzAzMTI5MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQpAQCAtMjY2NSwxOSArMjY2NSwzMiBAQCBzdGF0aWMgdm9pZCBkYXRh
RGV0ZWN0b3JMaW5rUG9zaXRpb25JbmZvcm1hdGlvbihFbGVtZW50JiBlbGVtZW50LCBJbnRlcmFj
dGlvbkluZgogCiAjZW5kaWYKIAotc3RhdGljIHZvaWQgaW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9u
KFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEludGVyYWN0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYg
aW5mbykKK3N0YXRpYyBPcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVySW1hZ2UmLCBJbWFnZSY+PiBp
bWFnZVJlbmRlcmVyQW5kSW1hZ2UoRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBhdXRvJiByZW5k
ZXJJbWFnZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqKGVsZW1lbnQucmVuZGVyZXIoKSkpOwor
ICAgIGlmICghaXM8UmVuZGVySW1hZ2U+KGVsZW1lbnQucmVuZGVyZXIoKSkpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBhdXRvJiByZW5kZXJJbWFnZSA9IGRvd25jYXN0PFJl
bmRlckltYWdlPigqZWxlbWVudC5yZW5kZXJlcigpKTsKICAgICBpZiAoIXJlbmRlckltYWdlLmNh
Y2hlZEltYWdlKCkgfHwgcmVuZGVySW1hZ2UuY2FjaGVkSW1hZ2UoKS0+ZXJyb3JPY2N1cnJlZCgp
KQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBh
dXRvKiBpbWFnZSA9IHJlbmRlckltYWdlLmNhY2hlZEltYWdlKCktPmltYWdlRm9yUmVuZGVyZXIo
JnJlbmRlckltYWdlKTsKICAgICBpZiAoIWltYWdlIHx8IGltYWdlLT53aWR0aCgpIDw9IDEgfHwg
aW1hZ2UtPmhlaWdodCgpIDw9IDEpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICByZXR1cm4ge3sgcmVuZGVySW1hZ2UsICppbWFnZSB9fTsKK30KKworc3RhdGljIHZvaWQgaW1h
Z2VQb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQsIGNv
bnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbiYgaW5mbykKK3sKKyAgICBhdXRvIHJlbmRlcmVyQW5kSW1hZ2Ug
PSBpbWFnZVJlbmRlcmVyQW5kSW1hZ2UoZWxlbWVudCk7CisgICAgaWYgKCFyZW5kZXJlckFuZElt
YWdlKQogICAgICAgICByZXR1cm47CiAKKyAgICBhdXRvJiBbcmVuZGVySW1hZ2UsIGltYWdlXSA9
ICpyZW5kZXJlckFuZEltYWdlOwogICAgIGluZm8uaXNJbWFnZSA9IHRydWU7CiAgICAgaW5mby5p
bWFnZVVSTCA9IGVsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChyZW5kZXJJbWFnZS5jYWNo
ZWRJbWFnZSgpLT51cmwoKS5zdHJpbmcoKSk7Ci0gICAgaW5mby5pc0FuaW1hdGVkSW1hZ2UgPSBp
bWFnZS0+aXNBbmltYXRlZCgpOworICAgIGluZm8uaXNBbmltYXRlZEltYWdlID0gaW1hZ2UuaXNB
bmltYXRlZCgpOwogCiAgICAgaWYgKHJlcXVlc3QuaW5jbHVkZVNuYXBzaG90IHx8IHJlcXVlc3Qu
aW5jbHVkZUltYWdlRGF0YSkKICAgICAgICAgaW5mby5pbWFnZSA9IGNyZWF0ZVNoYXJlYWJsZUJp
dG1hcChyZW5kZXJJbWFnZSwgc2NyZWVuU2l6ZSgpICogcGFnZS5jb3JlUGFnZSgpLT5kZXZpY2VT
Y2FsZUZhY3RvcigpKTsKQEAgLTI3MzMsMTIgKzI3NDYsMTcgQEAgc3RhdGljIHZvaWQgZWxlbWVu
dFBvc2l0aW9uSW5mb3JtYXRpb24oV2ViUGFnZSYgcGFnZSwgRWxlbWVudCYgZWxlbWVudCwgY29u
c3QgSW4KIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQucmVuZGVyZXIoKSkgewog
ICAgICAgICBib29sIHNob3VsZENvbGxlY3RJbWFnZVBvc2l0aW9uSW5mb3JtYXRpb24gPSByZW5k
ZXJlci0+aXNSZW5kZXJJbWFnZSgpOwotI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQotICAg
ICAgICBpZiAoaW5uZXJOb25TaGFyZWROb2RlICYmIEhUTUxFbGVtZW50Ojppc0ltYWdlT3Zlcmxh
eVRleHQoKmlubmVyTm9uU2hhcmVkTm9kZSkpCisgICAgICAgIGlmIChzaG91bGRDb2xsZWN0SW1h
Z2VQb3NpdGlvbkluZm9ybWF0aW9uICYmIGlubmVyTm9uU2hhcmVkTm9kZSAmJiBIVE1MRWxlbWVu
dDo6aXNJbWFnZU92ZXJsYXlUZXh0KCppbm5lck5vblNoYXJlZE5vZGUpKSB7CiAgICAgICAgICAg
ICBzaG91bGRDb2xsZWN0SW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uID0gZmFsc2U7Ci0jZWxzZQot
ICAgICAgICBVTlVTRURfUEFSQU0oaW5uZXJOb25TaGFyZWROb2RlKTsKLSNlbmRpZgorICAgICAg
ICAgICAgaW5mby5pc0ltYWdlT3ZlcmxheVRleHQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHJl
cXVlc3QuaW5jbHVkZUltYWdlRGF0YSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIHJlbmRl
cmVyQW5kSW1hZ2UgPSBpbWFnZVJlbmRlcmVyQW5kSW1hZ2UoZWxlbWVudCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgYXV0byYgW3JlbmRlckltYWdlLCBpbWFnZV0gPSAqcmVuZGVyZXJBbmRJbWFn
ZTsKKyAgICAgICAgICAgICAgICAgICAgaW5mby5pbWFnZVVSTCA9IGVsZW1lbnQuZG9jdW1lbnQo
KS5jb21wbGV0ZVVSTChyZW5kZXJJbWFnZS5jYWNoZWRJbWFnZSgpLT51cmwoKS5zdHJpbmcoKSk7
CisgICAgICAgICAgICAgICAgICAgIGluZm8uaW1hZ2UgPSBjcmVhdGVTaGFyZWFibGVCaXRtYXAo
cmVuZGVySW1hZ2UsIHNjcmVlblNpemUoKSAqIHBhZ2UuY29yZVBhZ2UoKS0+ZGV2aWNlU2NhbGVG
YWN0b3IoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CiAg
ICAgICAgIGlmIChzaG91bGRDb2xsZWN0SW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uKQogICAgICAg
ICAgICAgaW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uKHBhZ2UsIGVsZW1lbnQsIHJlcXVlc3QsIGlu
Zm8pOwogICAgICAgICBib3VuZHNQb3NpdGlvbkluZm9ybWF0aW9uKCpyZW5kZXJlciwgaW5mbyk7
CkBAIC0yNzU5LDYgKzI3NzcsOCBAQCBzdGF0aWMgdm9pZCBzZWxlY3Rpb25Qb3NpdGlvbkluZm9y
bWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYQogCiAgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlciA9IGhpdE5vZGUtPnJlbmRlcmVyKCk7CiAgICAgYm91bmRzUG9z
aXRpb25JbmZvcm1hdGlvbigqcmVuZGVyZXIsIGluZm8pOworCisgICAgaW5mby5pc1NlbGVjdGVk
ID0gcmVzdWx0LmlzU2VsZWN0ZWQoKTsKICAgICAKICAgICBpZiAoaXM8RWxlbWVudD4oKmhpdE5v
ZGUpKSB7CiAgICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50PigqaGl0
Tm9kZSk7CkBAIC0yOTIxLDggKzI5NDEsMTYgQEAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gV2ViUGFnZTo6cG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkkKICAg
ICAgICAgaW5mby5ub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNsaWNrSGFuZGxlciA9IG1fcGFnZS0+
bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNrRXZlbnQocmVxdWVzdC5wb2lu
dCwgYWRqdXN0ZWRQb2ludCk7CiAKICAgICBhdXRvJiBldmVudEhhbmRsZXIgPSBtX3BhZ2UtPm1h
aW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpOwotICAgIGNvbnN0ZXhwciBPcHRpb25TZXQ8SGl0VGVz
dFJlcXVlc3Q6OlJlcXVlc3RUeXBlPiBoaXRUeXBlIHsgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5
LCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dGcmFtZVNjcm9sbGJhcnMsIEhpdFRlc3RSZXF1ZXN0OjpB
bGxvd1Zpc2libGVDaGlsZEZyYW1lQ29udGVudE9ubHkgfTsKLSAgICBhdXRvIGhpdFRlc3RSZXN1
bHQgPSBldmVudEhhbmRsZXIuaGl0VGVzdFJlc3VsdEF0UG9pbnQocmVxdWVzdC5wb2ludCwgaGl0
VHlwZSk7CisgICAgYXV0byBoaXRUZXN0UmVxdWVzdFR5cGVzID0gT3B0aW9uU2V0PEhpdFRlc3RS
ZXF1ZXN0OjpSZXF1ZXN0VHlwZT4geworICAgICAgICBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHks
CisgICAgICAgIEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0ZyYW1lU2Nyb2xsYmFycywKKyAgICAgICAg
SGl0VGVzdFJlcXVlc3Q6OkFsbG93VmlzaWJsZUNoaWxkRnJhbWVDb250ZW50T25seSwKKyAgICB9
OworCisgICAgaWYgKHJlcXVlc3QuZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KQorICAg
ICAgICBoaXRUZXN0UmVxdWVzdFR5cGVzLmFkZChIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2Vy
QWdlbnRTaGFkb3dDb250ZW50KTsKKworICAgIGF1dG8gaGl0VGVzdFJlc3VsdCA9IGV2ZW50SGFu
ZGxlci5oaXRUZXN0UmVzdWx0QXRQb2ludChyZXF1ZXN0LnBvaW50LCBoaXRUZXN0UmVxdWVzdFR5
cGVzKTsKICAgICBpZiAoYXV0byogaGl0RnJhbWUgPSBoaXRUZXN0UmVzdWx0LmlubmVyTm9kZUZy
YW1lKCkpIHsKICAgICAgICAgaW5mby5jdXJzb3IgPSBoaXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCku
c2VsZWN0Q3Vyc29yKGhpdFRlc3RSZXN1bHQsIGZhbHNlKTsKICAgICAgICAgaWYgKHJlcXVlc3Qu
aW5jbHVkZUNhcmV0Q29udGV4dCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424735</attachid>
            <date>2021-03-30 22:05:51 -0700</date>
            <delta_ts>2021-03-30 22:52:47 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-223967-20210330220550.patch</filename>
            <type>text/plain</type>
            <size>19242</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI5MTYzYTVkM2Y5OWQxYWM2
MzUyZDc1MDY5YzViZDhlYzViNzNhMTQuLjQzMjk1N2QyMjZkZGFkZmMwZGU3Yjg4MmUxZWIwYmNl
MzRiYWU5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMjEtMDMtMzAgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRmFsbCBiYWNr
IHRvIGNvbnRleHQgbWVudSBwcmVzZW50YXRpb24gYWZ0ZXIgbG9uZyBwcmVzc2luZyBpbWFnZSBv
dmVybGF5IHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMzk2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzYwMjg2MjA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhpcyBi
ZWhhdmlvcjsgc2VlIDxyZGFyOi8vcHJvYmxlbS83NjAyODYyMD4gZm9yIG1vcmUgZGV0YWlscy4K
KworICAgICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24u
aDoKKyAgICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
Lm1tOgorICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246OmRlY29kZSk6CisKKyAgICAgICAgQWRkIGEgY291cGxlIG9mIG5ldyBmbGFncyAo
YGlzU2VsZWN0ZWRgIGFuZCBgaXNJbWFnZU92ZXJsYXlUZXh0YCkgdG8gaW5kaWNhdGUgd2hldGhl
ciB0aGUgaW50ZXJhY3Rpb24gaXMgb3ZlcgorICAgICAgICBzZWxlY3RlZCB0ZXh0LCBhbmQgYWxz
byB3aGV0aGVyIHRoZSBpbnRlcmFjdGlvbiBpcyBvdmVyIHRleHQgaW4gYW4gaW1hZ2Ugb3Zlcmxh
eSwgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgICogU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uUmVxdWVzdDo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3Q6OmlzVmFsaWRGb3JSZXF1ZXN0IGNvbnN0KToKKworICAgICAgICBB
ZGQgYSBuZXcgcG9zaXRpb24gaW5mb3JtYXRpb24gcmVxdWVzdCBvcHRpb24gdG8gaWdub3JlIHVz
ZXIgYWdlbnQgc2hhZG93IHJvb3QgY29udGVudC4KKworICAgICAgICAqIFNoYXJlZC9pb3MvSW50
ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorCisgICAgICAgIEFkZCBhIGZsYWcgdGhhdCdzIHNldCB3
aGVuIGBfaW1hZ2VFeHRyYWN0aW9uVGltZW91dEdlc3R1cmVSZWNvZ25pemVyYCBpcyByZWNvZ25p
emVkLCBhbmQgaXMgYWJvdXQgdG8gcHJlc2VudCBhCisgICAgICAgIGNvbnRleHQgbWVudSwgYW5k
IGlzIHVuc2V0IHVwb24gc3RhcnRpbmcgdGhlIGNvbnRleHQgbWVudSBwcmVzZW50YXRpb24uCisK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRVcEludGVyYWN0aW9uXSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgY2xlYW5VcEludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkUmVxdWlyZUZhaWx1cmVPZkdlc3R1cmVSZWNv
Z25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNo
b3VsZEJlUmVxdWlyZWRUb0ZhaWxCeUdlc3R1cmVSZWNvZ25pemVyOl0pOgorCisgICAgICAgIE1h
a2UgdGhlIHRpbWVvdXQgZ2VzdHVyZSAoYF9pbWFnZUV4dHJhY3Rpb25UaW1lb3V0R2VzdHVyZVJl
Y29nbml6ZXJgKSByZXF1aXJlIHRoZSBmYWlsdXJlIG9mIHRoZSBjb250ZXh0IG1lbnUKKyAgICAg
ICAgaW5pdGlhdGlvbiBnZXN0dXJlLCBzdWNoIHRoYXQgdGhpcyBpbWFnZSBleHRyYWN0aW9uIHRp
bWVvdXQgZ2VzdHVyZSB3b24ndCB0cmlnZ2VyIGlmIHRoZSBjb250ZXh0IG1lbnUgaGFzCisgICAg
ICAgIGFscmVhZHkgYmVlbiB0cmlnZ2VyZWQuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
aW52YWxpZGF0ZUN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWVdKToKKworICAgICAgICBQdWxsIGxv
Z2ljIGZvciByZXNldHRpbmcgY2FjaGVkIHBvc2l0aW9uIGluZm9ybWF0aW9uIGludG8gYSBoZWxw
ZXIsIGFuZCBjYWxsIGl0IGluc2lkZQorICAgICAgICBgLV9kaWRDb21taXRMb2FkRm9yTWFpbkZy
YW1lYC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jb250ZXh0TWVudUludGVyYWN0aW9u
OmNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjpjb21wbGV0aW9uOl0pOgorCisgICAgICAg
IFJlc2V0IHRoZSBuZXcgZmxhZyAoYF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VFeHRy
YWN0aW9uVGltZW91dGApIGlmIG5lY2Vzc2FyeSwgYW5kIHVzZSBpdHMgZXhpc3RpbmcgdmFsdWUK
KyAgICAgICAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2Ugc2hvdWxkIGlnbm9yZSBVQSBzaGFkb3cg
cm9vdCBjb250ZW50IHdoZW4gcGVyZm9ybWluZyBhIGhpdC10ZXN0IGZvciB0aGUgY29udGV4dCBt
ZW51CisgICAgICAgIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OmltYWdlUmVuZGVyZXJBbmRJ
bWFnZSk6CisgICAgICAgIChXZWJLaXQ6OmltYWdlUG9zaXRpb25JbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmVsZW1lbnRQb3NpdGlvbkluZm9ybWF0aW9uKToKKworICAgICAgICBBZGRp
dGlvbmFsbHkgc3VwcGx5IHRoZSBpbWFnZSBVUkwgYW5kIGltYWdlIGRhdGEgaWYgYGluY2x1ZGVJ
bWFnZURhdGFgIGlzIHNldCwgZXZlbiBpZiB0aGUgaGl0LXRlc3RlZCBub2RlIGlzCisgICAgICAg
IGp1c3QgYSB0ZXh0IG5vZGUgdW5kZXJuZWF0aCBhbiBpbWFnZSBlbGVtZW50J3Mgb3ZlcmxheS4K
KworICAgICAgICAoV2ViS2l0OjpzZWxlY3Rpb25Qb3NpdGlvbkluZm9ybWF0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6cG9zaXRpb25JbmZvcm1hdGlvbik6CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHRoZSBuZXcgcG9zaXRpb24gaW5mb3JtYXRpb24gZmxhZ3MuCisKIDIwMjEt
MDMtMjkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIGEgd2F5IGZvciBpbnRlcm5hbCBjbGllbnRzIHRvIGhpdC10ZXN0IGZvciBzZWxlY3RhYmxl
IHRleHQgaW4gdXNlciBhZ2VudCBzaGFkb3cgcm9vdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKaW5k
ZXggNTQwN2RmNTFmY2JjYWQyN2ZhYzIyMjcwZTVkZDI0N2JmMzIzMmI1NS4uYWVlMzc4M2ZlYjJh
ODhiZjI3ZTQ5YjEzOTY3Yzg1ZjY0YTczMDczOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKQEAg
LTU0LDYgKzU0LDcgQEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIHsK
ICAgICBib29sIGNhbkJlVmFsaWQgeyB0cnVlIH07CiAgICAgT3B0aW9uYWw8Ym9vbD4gbm9kZUF0
UG9zaXRpb25IYXNEb3VibGVDbGlja0hhbmRsZXI7CiAgICAgYm9vbCBpc1NlbGVjdGFibGUgeyBm
YWxzZSB9OworICAgIGJvb2wgaXNTZWxlY3RlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBwcmVmZXJz
RHJhZ2dpbmdPdmVyVGV4dFNlbGVjdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBpc05lYXJNYXJr
ZWRUZXh0IHsgZmFsc2UgfTsKICAgICBib29sIHRvdWNoQ2FsbG91dEVuYWJsZWQgeyB0cnVlIH07
CkBAIC03MCw2ICs3MSw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biB7CiAgICAgYm9vbCBwcmV2ZW50VGV4dEludGVyYWN0aW9uIHsgZmFsc2UgfTsKICNlbmRpZgog
ICAgIGJvb2wgc2hvdWxkTm90VXNlSUJlYW1JbkVkaXRhYmxlQ29udGVudCB7IGZhbHNlIH07Cisg
ICAgYm9vbCBpc0ltYWdlT3ZlcmxheVRleHQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OkZsb2F0
UG9pbnQgYWRqdXN0ZWRQb2ludEZvck5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50czsKICAgICBV
UkwgdXJsOwogICAgIFVSTCBpbWFnZVVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQppbmRleCA5
NTExMzlhOGY3ZDZkNWQzZWM1NWI5ZjVlMDI5NThhMGEzYTU2NWQ5Li4wMTU5ZDg5Y2EwMGNkYTgy
ZjU3YjFmYmIyNjIyMDdlMTBlN2M3ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCkBAIC00
NSw2ICs0NSw3IEBAIHZvaWQgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBjYW5CZVZhbGlk
OwogICAgIGVuY29kZXIgPDwgbm9kZUF0UG9zaXRpb25IYXNEb3VibGVDbGlja0hhbmRsZXI7CiAg
ICAgZW5jb2RlciA8PCBpc1NlbGVjdGFibGU7CisgICAgZW5jb2RlciA8PCBpc1NlbGVjdGVkOwog
ICAgIGVuY29kZXIgPDwgcHJlZmVyc0RyYWdnaW5nT3ZlclRleHRTZWxlY3Rpb247CiAgICAgZW5j
b2RlciA8PCBpc05lYXJNYXJrZWRUZXh0OwogICAgIGVuY29kZXIgPDwgdG91Y2hDYWxsb3V0RW5h
YmxlZDsKQEAgLTg1LDYgKzg2LDcgQEAgdm9pZCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8
IHByZXZlbnRUZXh0SW50ZXJhY3Rpb247CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IHNob3VsZE5v
dFVzZUlCZWFtSW5FZGl0YWJsZUNvbnRlbnQ7CisgICAgZW5jb2RlciA8PCBpc0ltYWdlT3Zlcmxh
eVRleHQ7CiAgICAgZW5jb2RlciA8PCBlbGVtZW50Q29udGV4dDsKIH0KIApAQCAtMTAyLDYgKzEw
NCw5IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIEludGVyYWN0aW9uCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQuaXNTZWxlY3RhYmxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuaXNTZWxlY3RlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnByZWZlcnNEcmFnZ2luZ092ZXJUZXh0
U2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yMDQsNiArMjA5LDkgQEAg
Ym9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlciwgSW50ZXJhY3Rpb24KICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5z
aG91bGROb3RVc2VJQmVhbUluRWRpdGFibGVDb250ZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNJbWFnZU92ZXJsYXlUZXh0KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
ZWxlbWVudENvbnRleHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Qu
Y3BwCmluZGV4IGJlMTU4N2JhYzkwMmE3MWZkM2I1NGM1NmJiNzhhOGQ1YTMxNGIyNGMuLmRlYzQ2
NWYyZmQ3OTQ4ZDc4YzRmMmMwM2NhMzk2MWYzZDlkYzY1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmNw
cApAQCAtNDIsNiArNDIsNyBAQCB2b2lkIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Ojpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgaW5jbHVk
ZUhhc0RvdWJsZUNsaWNrSGFuZGxlcjsKICAgICBlbmNvZGVyIDw8IGluY2x1ZGVJbWFnZURhdGE7
CiAgICAgZW5jb2RlciA8PCBsaW5rSW5kaWNhdG9yU2hvdWxkSGF2ZUxlZ2FjeU1hcmdpbnM7Cisg
ICAgZW5jb2RlciA8PCBkaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQ7CiB9CiAKIGJvb2wg
SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0JiByZXN1bHQpCkBAIC02Nyw2ICs2OCw5
IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q6OmRlY29kZShJUEM6OkRlY29k
ZXImIGRlY29kZXIsIEludGVyYWN0aW9uSW5mCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQubGlua0luZGljYXRvclNob3VsZEhhdmVMZWdhY3lNYXJnaW5zKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZGlzYWxsb3dVc2VyQWdl
bnRTaGFkb3dDb250ZW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTkxLDYgKzk1LDkgQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdDo6aXNWYWxpZEZvclJlcXVlc3QoY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGkKICAgICBp
ZiAob3RoZXIubGlua0luZGljYXRvclNob3VsZEhhdmVMZWdhY3lNYXJnaW5zICE9IGxpbmtJbmRp
Y2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lucykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisg
ICAgaWYgKG90aGVyLmRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCAhPSBkaXNhbGxvd1Vz
ZXJBZ2VudFNoYWRvd0NvbnRlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVy
biAob3RoZXIucG9pbnQgLSBwb2ludCkuZGlhZ29uYWxMZW5ndGhTcXVhcmVkKCkgPD0gcmFkaXVz
ICogcmFkaXVzOwogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L0ludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9p
b3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QuaAppbmRleCBkMDIwZThkMTI3NmRiMTVm
M2JhNjZiMGRmOTNkNDFjMTc3NTE0MDg4Li4zMjY4NTk5YWRkMTVlN2E0ZmE2ZTk1YzQ2ODZlNDY5
MzdiOGFjNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rp
b25JbmZvcm1hdGlvblJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50
ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QuaApAQCAtNDYsNiArNDYsNyBAQCBzdHJ1Y3QgSW50
ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgewogICAgIGJvb2wgaW5jbHVkZUltYWdlRGF0YSB7
IGZhbHNlIH07CiAKICAgICBib29sIGxpbmtJbmRpY2F0b3JTaG91bGRIYXZlTGVnYWN5TWFyZ2lu
cyB7IGZhbHNlIH07CisgICAgYm9vbCBkaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQgeyBm
YWxzZSB9OwogCiAgICAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoKSB7IH0KICAgICBl
eHBsaWNpdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpJbnRQb2ludCBw
b2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaAppbmRleCA4ZjIwYmZlMTE1ZjUzYjM2YTQ0MDVlOTA2OWI3MGQ4MTgy
ZWJiYWY5Li4xNjEzNTM1OWQyZTY5YTBjNjI0N2YzMDBlYTgyZjdjZTM5Mzk3OGM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCkBAIC00NzUsNyArNDc1LDkgQEAgZW51bSBjbGFzcyBQcm9jZWVkV2l0aEltYWdlRXh0
cmFjdGlvbiA6IGJvb2wgewogICAgIFZlY3RvcjxCbG9ja1B0cjx2b2lkKFdlYktpdDo6UHJvY2Vl
ZFdpdGhJbWFnZUV4dHJhY3Rpb24pPj4gX2FjdGlvbnNUb1BlcmZvcm1BZnRlclBlbmRpbmdJbWFn
ZUV4dHJhY3Rpb247CiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCiAgICAgUmV0YWluUHRyPFVJTWVu
dT4gX2ltYWdlRXh0cmFjdGlvbkNvbnRleHRNZW51OworICAgIEJPT0wgX2NvbnRleHRNZW51V2Fz
VHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0OwogI2VuZGlmIC8vIFVTRShVSUNPTlRF
WFRNRU5VKQorICAgIEJPT0wgX2lzUHJvY2VlZGluZ1dpdGhJbWFnZUV4dHJhY3Rpb247CiAjZW5k
aWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMGZkMGM1ODE2MjE2N2UzYWViZjJkMjdlZTBjYWNkNjU1
M2JiODJlZS4uYjhkZmZiY2E4ZTFjYjI3Y2NiMTIxY2FiYzdlNjJlNzJlZDhhNjZjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCkBAIC05MDgsNiArOTA4LDEwIEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgog
ICAgIF9pc0NoYW5naW5nRm9jdXMgPSBOTzsKICAgICBfaXNCbHVycmluZ0ZvY3VzZWRFbGVtZW50
ID0gTk87CiAKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCisgICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25UaW1lb3V0
ID0gTk87CisjZW5kaWYKKwogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogICAgIF9kYXRh
TGlzdFRleHRTdWdnZXN0aW9uc0lucHV0VmlldyA9IG5pbDsKICAgICBfZGF0YUxpc3RUZXh0U3Vn
Z2VzdGlvbnMgPSBuaWw7CkBAIC05NjQsNiArOTY4LDEwIEBAIC0gKHZvaWQpY2xlYW5VcEludGVy
YWN0aW9uCiAKICAgICBfdHJlYXRBc0NvbnRlbnRFZGl0YWJsZVVudGlsTmV4dEVkaXRvclN0YXRl
VXBkYXRlID0gTk87CiAKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkgJiYgRU5BQkxFKElNQUdFX0VY
VFJBQ1RJT04pCisgICAgX2NvbnRleHRNZW51V2FzVHJpZ2dlcmVkQnlJbWFnZUV4dHJhY3Rpb25U
aW1lb3V0ID0gTk87CisjZW5kaWYKKwogICAgIGlmIChfaW50ZXJhY3Rpb25WaWV3c0NvbnRhaW5l
clZpZXcpIHsKICAgICAgICAgW3NlbGYubGF5ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQ
YXRoOkAidHJhbnNmb3JtIiBjb250ZXh0OldLQ29udGVudFZpZXdLVk9UcmFuc2Zvcm1Db250ZXh0
XTsKICAgICAgICAgW19pbnRlcmFjdGlvblZpZXdzQ29udGFpbmVyVmlldyByZW1vdmVGcm9tU3Vw
ZXJ2aWV3XTsKQEAgLTIzMDcsNiArMjMxNSwxMSBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVy
OihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVxdWlyZQog
ICAgIGlmIChbb3RoZXJHZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdKQogICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyICopb3RoZXJHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1
cmVSZWNvZ25pemVyOmdlc3R1cmVSZWNvZ25pemVyXTsKIAorI2lmIFVTRShVSUNPTlRFWFRNRU5V
KSAmJiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKKyAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIg
PT0gX2ltYWdlRXh0cmFjdGlvblRpbWVvdXRHZXN0dXJlUmVjb2duaXplciAmJiBvdGhlckdlc3R1
cmVSZWNvZ25pemVyID09IFtfY29udGV4dE1lbnVJbnRlcmFjdGlvbiBnZXN0dXJlUmVjb2duaXpl
ckZvckZhaWx1cmVSZWxhdGlvbnNoaXBzXSkKKyAgICAgICAgcmV0dXJuIFlFUzsKKyNlbmRpZgor
CiAgICAgcmV0dXJuIE5POwogfQogCkBAIC0yMzE1LDYgKzIzMjgsMTEgQEAgLSAoQk9PTClnZXN0
dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNo
b3VsZEJlUmVxdWkKICAgICBpZiAoW2dlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCiAgICAgICAgIHJldHVybiBbKFdLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdl
c3R1cmVSZWNvZ25pemVyOm90aGVyR2VzdHVyZVJlY29nbml6ZXJdOwogCisjaWYgVVNFKFVJQ09O
VEVYVE1FTlUpICYmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQorICAgIGlmIChnZXN0dXJlUmVj
b2duaXplciA9PSBbX2NvbnRleHRNZW51SW50ZXJhY3Rpb24gZ2VzdHVyZVJlY29nbml6ZXJGb3JG
YWlsdXJlUmVsYXRpb25zaGlwc10gJiYgb3RoZXJHZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VF
eHRyYWN0aW9uVGltZW91dEdlc3R1cmVSZWNvZ25pemVyKQorICAgICAgICByZXR1cm4gWUVTOwor
I2VuZGlmCisKICAgICByZXR1cm4gTk87CiB9CiAKQEAgLTMwNDgsNiArMzA2NiwxMiBAQCAtICh2
b2lkKWNsZWFyU2VsZWN0aW9uCiAgICAgX3BhZ2UtPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKKy0g
KHZvaWQpX2ludmFsaWRhdGVDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbgoreworICAgIF9oYXNW
YWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBOTzsKKyAgICBfcG9zaXRpb25JbmZvcm1hdGlvbiA9
IHsgfTsKK30KKwogLSAodm9pZClfcG9zaXRpb25JbmZvcm1hdGlvbkRpZENoYW5nZTooY29uc3Qg
V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mbwogewogICAgIGlm
IChfbGFzdE91dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgJiYgaW5mby5yZXF1
ZXN0LmlzVmFsaWRGb3JSZXF1ZXN0KCpfbGFzdE91dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlv
blJlcXVlc3QpKQpAQCAtNDQ5Myw4ICs0NTE3LDcgQEAgLSAodm9pZClfZGlkQ29tbWl0TG9hZEZv
ck1haW5GcmFtZQogICAgIF90ZXh0SW50ZXJhY3Rpb25EaWRDaGFuZ2VGb2N1c2VkRWxlbWVudCA9
IE5POwogICAgIF9hY3RpdmVUZXh0SW50ZXJhY3Rpb25Db3VudCA9IDA7CiAgICAgX3RyZWF0QXND
b250ZW50RWRpdGFibGVVbnRpbE5leHRFZGl0b3JTdGF0ZVVwZGF0ZSA9IE5POwotICAgIF9oYXNW
YWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBOTzsKLSAgICBfcG9zaXRpb25JbmZvcm1hdGlvbiA9
IHsgfTsKKyAgICBbc2VsZiBfaW52YWxpZGF0ZUN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXTsK
IH0KIAogI2lmICFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQpAQCAtOTk1NCwxMyArOTk3
NywxOSBAQCAtIChVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbnRleHRNZW51SW50ZXJh
Y3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbgogCiAtICh2b2lkKV9jb250ZXh0TWVudUlu
dGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25maWd1
cmF0aW9uRm9yTWVudUF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24gY29tcGxldGlvbjoodm9p
ZCheKShVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKSljb21wbGV0aW9uCiB7CisjaWYgRU5B
QkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgQk9PTCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlv
blRpbWVvdXQgPSBzdGQ6OmV4Y2hhbmdlKF9jb250ZXh0TWVudVdhc1RyaWdnZXJlZEJ5SW1hZ2VF
eHRyYWN0aW9uVGltZW91dCwgTk8pOworI2Vsc2UKKyAgICBCT09MIHRyaWdnZXJlZEJ5SW1hZ2VF
eHRyYWN0aW9uVGltZW91dCA9IE5POworI2VuZGlmCisKICAgICBpZiAoIV93ZWJWaWV3KQogICAg
ICAgICByZXR1cm4gY29tcGxldGlvbihuaWwpOwogCiAgICAgaWYgKCFzZWxmLndlYlZpZXcuY29u
ZmlndXJhdGlvbi5fbG9uZ1ByZXNzQWN0aW9uc0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uKG5pbCk7CiAKLSAgICBhdXRvIGdldENvbmZpZ3VyYXRpb25BbmRDb250aW51ZSA9IFt3
ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpLCBpbnRlcmFjdGlvbiA9
IHJldGFpblB0cihpbnRlcmFjdGlvbiksIGNvbXBsZXRpb24gPSBtYWtlQmxvY2tQdHIoY29tcGxl
dGlvbildIChXZWJLaXQ6OlByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uIHByb2NlZWRXaXRoSW1h
Z2VFeHRyYWN0aW9uKSB7CisgICAgYXV0byBnZXRDb25maWd1cmF0aW9uQW5kQ29udGludWUgPSBb
d2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgaW50ZXJhY3Rpb24g
PSByZXRhaW5QdHIoaW50ZXJhY3Rpb24pLCBjb21wbGV0aW9uID0gbWFrZUJsb2NrUHRyKGNvbXBs
ZXRpb24pLCB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRpbWVvdXRdIChXZWJLaXQ6OlByb2Nl
ZWRXaXRoSW1hZ2VFeHRyYWN0aW9uIHByb2NlZWRXaXRoSW1hZ2VFeHRyYWN0aW9uKSB7CiAgICAg
ICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwogICAgICAgICBpZiAoIXN0cm9u
Z1NlbGYgfHwgcHJvY2VlZFdpdGhJbWFnZUV4dHJhY3Rpb24gPT0gV2ViS2l0OjpQcm9jZWVkV2l0
aEltYWdlRXh0cmFjdGlvbjo6WWVzKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uKG5pbCk7CkBA
IC05OTc2LDYgKzEwMDA1LDcgQEAgLSAodm9pZClfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlD
b250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXIKICAgICAgICAgV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0IHsgV2ViQ29yZTo6cm91
bmRlZEludFBvaW50KFtpbnRlcmFjdGlvbiBsb2NhdGlvbkluVmlldzpzdHJvbmdTZWxmLmdldCgp
XSkgfTsKICAgICAgICAgcmVxdWVzdC5pbmNsdWRlU25hcHNob3QgPSB0cnVlOwogICAgICAgICBy
ZXF1ZXN0LmluY2x1ZGVMaW5rSW5kaWNhdG9yID0gdHJ1ZTsKKyAgICAgICAgcmVxdWVzdC5kaXNh
bGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQgPSB0cmlnZ2VyZWRCeUltYWdlRXh0cmFjdGlvblRp
bWVvdXQ7CiAgICAgICAgIHJlcXVlc3QubGlua0luZGljYXRvclNob3VsZEhhdmVMZWdhY3lNYXJn
aW5zID0gIVtzdHJvbmdTZWxmIF9zaG91bGRVc2VDb250ZXh0TWVudXNdOwogCiAgICAgICAgIFtz
dHJvbmdTZWxmIGRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOlt3ZWFrU2VsZiA9IFdl
YWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHN0cm9uZ1NlbGYuZ2V0KCkpLCBjb21wbGV0aW9uXSAo
V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA5MmJm
N2Q3ZDU5OTI3YWY3MDkwNTI4MTgzMjFhMGYyMDJjZjI0ZTliLi4xYWZmMDk0MWI5M2VhMTYxNWQ1
NjVhM2I4MWNlODk3NzAzMTI5MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjY2NSwxOSArMjY2NSwzMiBAQCBzdGF0
aWMgdm9pZCBkYXRhRGV0ZWN0b3JMaW5rUG9zaXRpb25JbmZvcm1hdGlvbihFbGVtZW50JiBlbGVt
ZW50LCBJbnRlcmFjdGlvbkluZgogCiAjZW5kaWYKIAotc3RhdGljIHZvaWQgaW1hZ2VQb3NpdGlv
bkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEludGVy
YWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbiYgaW5mbykKK3N0YXRpYyBPcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVySW1hZ2Um
LCBJbWFnZSY+PiBpbWFnZVJlbmRlcmVyQW5kSW1hZ2UoRWxlbWVudCYgZWxlbWVudCkKIHsKLSAg
ICBhdXRvJiByZW5kZXJJbWFnZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqKGVsZW1lbnQucmVu
ZGVyZXIoKSkpOworICAgIGlmICghaXM8UmVuZGVySW1hZ2U+KGVsZW1lbnQucmVuZGVyZXIoKSkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBhdXRvJiByZW5kZXJJbWFnZSA9
IGRvd25jYXN0PFJlbmRlckltYWdlPigqZWxlbWVudC5yZW5kZXJlcigpKTsKICAgICBpZiAoIXJl
bmRlckltYWdlLmNhY2hlZEltYWdlKCkgfHwgcmVuZGVySW1hZ2UuY2FjaGVkSW1hZ2UoKS0+ZXJy
b3JPY2N1cnJlZCgpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAKICAgICBhdXRvKiBpbWFnZSA9IHJlbmRlckltYWdlLmNhY2hlZEltYWdlKCktPmltYWdl
Rm9yUmVuZGVyZXIoJnJlbmRlckltYWdlKTsKICAgICBpZiAoIWltYWdlIHx8IGltYWdlLT53aWR0
aCgpIDw9IDEgfHwgaW1hZ2UtPmhlaWdodCgpIDw9IDEpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgcmVuZGVySW1hZ2UsICppbWFnZSB9fTsKK30KKworc3Rh
dGljIHZvaWQgaW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIEVsZW1lbnQm
IGVsZW1lbnQsIGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0JiByZXF1ZXN0LCBJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYgaW5mbykKK3sKKyAgICBhdXRvIHJlbmRl
cmVyQW5kSW1hZ2UgPSBpbWFnZVJlbmRlcmVyQW5kSW1hZ2UoZWxlbWVudCk7CisgICAgaWYgKCFy
ZW5kZXJlckFuZEltYWdlKQogICAgICAgICByZXR1cm47CiAKKyAgICBhdXRvJiBbcmVuZGVySW1h
Z2UsIGltYWdlXSA9ICpyZW5kZXJlckFuZEltYWdlOwogICAgIGluZm8uaXNJbWFnZSA9IHRydWU7
CiAgICAgaW5mby5pbWFnZVVSTCA9IGVsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChyZW5k
ZXJJbWFnZS5jYWNoZWRJbWFnZSgpLT51cmwoKS5zdHJpbmcoKSk7Ci0gICAgaW5mby5pc0FuaW1h
dGVkSW1hZ2UgPSBpbWFnZS0+aXNBbmltYXRlZCgpOworICAgIGluZm8uaXNBbmltYXRlZEltYWdl
ID0gaW1hZ2UuaXNBbmltYXRlZCgpOwogCiAgICAgaWYgKHJlcXVlc3QuaW5jbHVkZVNuYXBzaG90
IHx8IHJlcXVlc3QuaW5jbHVkZUltYWdlRGF0YSkKICAgICAgICAgaW5mby5pbWFnZSA9IGNyZWF0
ZVNoYXJlYWJsZUJpdG1hcChyZW5kZXJJbWFnZSwgc2NyZWVuU2l6ZSgpICogcGFnZS5jb3JlUGFn
ZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKQEAgLTI3MzMsMTIgKzI3NDYsMTcgQEAgc3RhdGlj
IHZvaWQgZWxlbWVudFBvc2l0aW9uSW5mb3JtYXRpb24oV2ViUGFnZSYgcGFnZSwgRWxlbWVudCYg
ZWxlbWVudCwgY29uc3QgSW4KIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQucmVu
ZGVyZXIoKSkgewogICAgICAgICBib29sIHNob3VsZENvbGxlY3RJbWFnZVBvc2l0aW9uSW5mb3Jt
YXRpb24gPSByZW5kZXJlci0+aXNSZW5kZXJJbWFnZSgpOwotI2lmIEVOQUJMRShJTUFHRV9FWFRS
QUNUSU9OKQotICAgICAgICBpZiAoaW5uZXJOb25TaGFyZWROb2RlICYmIEhUTUxFbGVtZW50Ojpp
c0ltYWdlT3ZlcmxheVRleHQoKmlubmVyTm9uU2hhcmVkTm9kZSkpCisgICAgICAgIGlmIChzaG91
bGRDb2xsZWN0SW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uICYmIGlubmVyTm9uU2hhcmVkTm9kZSAm
JiBIVE1MRWxlbWVudDo6aXNJbWFnZU92ZXJsYXlUZXh0KCppbm5lck5vblNoYXJlZE5vZGUpKSB7
CiAgICAgICAgICAgICBzaG91bGRDb2xsZWN0SW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uID0gZmFs
c2U7Ci0jZWxzZQotICAgICAgICBVTlVTRURfUEFSQU0oaW5uZXJOb25TaGFyZWROb2RlKTsKLSNl
bmRpZgorICAgICAgICAgICAgaW5mby5pc0ltYWdlT3ZlcmxheVRleHQgPSB0cnVlOworICAgICAg
ICAgICAgaWYgKHJlcXVlc3QuaW5jbHVkZUltYWdlRGF0YSkgeworICAgICAgICAgICAgICAgIGlm
IChhdXRvIHJlbmRlcmVyQW5kSW1hZ2UgPSBpbWFnZVJlbmRlcmVyQW5kSW1hZ2UoZWxlbWVudCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byYgW3JlbmRlckltYWdlLCBpbWFnZV0gPSAqcmVu
ZGVyZXJBbmRJbWFnZTsKKyAgICAgICAgICAgICAgICAgICAgaW5mby5pbWFnZVVSTCA9IGVsZW1l
bnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChyZW5kZXJJbWFnZS5jYWNoZWRJbWFnZSgpLT51cmwo
KS5zdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGluZm8uaW1hZ2UgPSBjcmVhdGVTaGFy
ZWFibGVCaXRtYXAocmVuZGVySW1hZ2UsIHNjcmVlblNpemUoKSAqIHBhZ2UuY29yZVBhZ2UoKS0+
ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgICAgIGlmIChzaG91bGRDb2xsZWN0SW1hZ2VQb3NpdGlvbkluZm9ybWF0
aW9uKQogICAgICAgICAgICAgaW1hZ2VQb3NpdGlvbkluZm9ybWF0aW9uKHBhZ2UsIGVsZW1lbnQs
IHJlcXVlc3QsIGluZm8pOwogICAgICAgICBib3VuZHNQb3NpdGlvbkluZm9ybWF0aW9uKCpyZW5k
ZXJlciwgaW5mbyk7CkBAIC0yNzU5LDYgKzI3NzcsOCBAQCBzdGF0aWMgdm9pZCBzZWxlY3Rpb25Q
b3NpdGlvbkluZm9ybWF0aW9uKFdlYlBhZ2UmIHBhZ2UsIGNvbnN0IEludGVyYWN0aW9uSW5mb3Jt
YQogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGhpdE5vZGUtPnJlbmRlcmVyKCk7CiAg
ICAgYm91bmRzUG9zaXRpb25JbmZvcm1hdGlvbigqcmVuZGVyZXIsIGluZm8pOworCisgICAgaW5m
by5pc1NlbGVjdGVkID0gcmVzdWx0LmlzU2VsZWN0ZWQoKTsKICAgICAKICAgICBpZiAoaXM8RWxl
bWVudD4oKmhpdE5vZGUpKSB7CiAgICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBkb3duY2FzdDxF
bGVtZW50PigqaGl0Tm9kZSk7CkBAIC0yOTIxLDggKzI5NDEsMTYgQEAgSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24gV2ViUGFnZTo6cG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRl
cmFjdGlvbkkKICAgICAgICAgaW5mby5ub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNsaWNrSGFuZGxl
ciA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNsaWNrRXZlbnQo
cmVxdWVzdC5wb2ludCwgYWRqdXN0ZWRQb2ludCk7CiAKICAgICBhdXRvJiBldmVudEhhbmRsZXIg
PSBtX3BhZ2UtPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpOwotICAgIGNvbnN0ZXhwciBPcHRp
b25TZXQ8SGl0VGVzdFJlcXVlc3Q6OlJlcXVlc3RUeXBlPiBoaXRUeXBlIHsgSGl0VGVzdFJlcXVl
c3Q6OlJlYWRPbmx5LCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dGcmFtZVNjcm9sbGJhcnMsIEhpdFRl
c3RSZXF1ZXN0OjpBbGxvd1Zpc2libGVDaGlsZEZyYW1lQ29udGVudE9ubHkgfTsKLSAgICBhdXRv
IGhpdFRlc3RSZXN1bHQgPSBldmVudEhhbmRsZXIuaGl0VGVzdFJlc3VsdEF0UG9pbnQocmVxdWVz
dC5wb2ludCwgaGl0VHlwZSk7CisgICAgYXV0byBoaXRUZXN0UmVxdWVzdFR5cGVzID0gT3B0aW9u
U2V0PEhpdFRlc3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4geworICAgICAgICBIaXRUZXN0UmVxdWVz
dDo6UmVhZE9ubHksCisgICAgICAgIEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0ZyYW1lU2Nyb2xsYmFy
cywKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OkFsbG93VmlzaWJsZUNoaWxkRnJhbWVDb250ZW50
T25seSwKKyAgICB9OworCisgICAgaWYgKHJlcXVlc3QuZGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dD
b250ZW50KQorICAgICAgICBoaXRUZXN0UmVxdWVzdFR5cGVzLmFkZChIaXRUZXN0UmVxdWVzdDo6
RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KTsKKworICAgIGF1dG8gaGl0VGVzdFJlc3Vs
dCA9IGV2ZW50SGFuZGxlci5oaXRUZXN0UmVzdWx0QXRQb2ludChyZXF1ZXN0LnBvaW50LCBoaXRU
ZXN0UmVxdWVzdFR5cGVzKTsKICAgICBpZiAoYXV0byogaGl0RnJhbWUgPSBoaXRUZXN0UmVzdWx0
LmlubmVyTm9kZUZyYW1lKCkpIHsKICAgICAgICAgaW5mby5jdXJzb3IgPSBoaXRGcmFtZS0+ZXZl
bnRIYW5kbGVyKCkuc2VsZWN0Q3Vyc29yKGhpdFRlc3RSZXN1bHQsIGZhbHNlKTsKICAgICAgICAg
aWYgKHJlcXVlc3QuaW5jbHVkZUNhcmV0Q29udGV4dCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>