<?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>239748</bug_id>
          
          <creation_ts>2022-04-25 16:42:54 -0700</creation_ts>
          <short_desc>Adjust some image transcoding behaviors related to &quot;Copy Cropped Image&quot;</short_desc>
          <delta_ts>2022-04-26 11:29:17 -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>akeerthi</cc>
    
    <cc>hi</cc>
    
    <cc>katherine_cheney</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>1864287</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-25 16:42:54 -0700</bug_when>
    <thetext>rdar://92287000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864352</commentid>
    <comment_count>1</comment_count>
      <attachid>458327</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-25 21:52:29 -0700</bug_when>
    <thetext>Created attachment 458327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864464</commentid>
    <comment_count>2</comment_count>
      <attachid>458327</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2022-04-26 08:25:30 -0700</bug_when>
    <thetext>Comment on attachment 458327
Patch

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

looks good! A couple Qs

&gt; Source/WebKit/Platform/cocoa/CocoaImage.mm:-56
&gt; -    if (CFStringGetLength(preferredMIMEType)) {

should we keep this check or add an assert that the CFStringRef isn&apos;t empty for future callers?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:11034
&gt; +        auto [data, type] = WebKit::imageDataForCroppedImageResult(result, (__bridge CFStringRef)sourceMIMEType.get());

Do we no longer need to worry about if the result is nil in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864469</commentid>
    <comment_count>3</comment_count>
      <attachid>458327</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-26 08:43:51 -0700</bug_when>
    <thetext>Comment on attachment 458327
Patch

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

Thanks for the review!

&gt;&gt; Source/WebKit/Platform/cocoa/CocoaImage.mm:-56
&gt;&gt; -    if (CFStringGetLength(preferredMIMEType)) {
&gt; 
&gt; should we keep this check or add an assert that the CFStringRef isn&apos;t empty for future callers?

Good call! Will add a `ASSERT(CFStringGetLength(preferredMIMEType));` here.

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:11034
&gt;&gt; +        auto [data, type] = WebKit::imageDataForCroppedImageResult(result, (__bridge CFStringRef)sourceMIMEType.get());
&gt; 
&gt; Do we no longer need to worry about if the result is nil in this case?

Good catch! I originally fell back to the original image in the case where the &quot;markup image conversion&quot; failed, but this is no longer desired behavior. That said, in the case where `result` is null, we should be bailing from this codepath altogether — I&apos;ll add an early return for the `!result` case above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864475</commentid>
    <comment_count>4</comment_count>
      <attachid>458373</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-26 08:55:39 -0700</bug_when>
    <thetext>Created attachment 458373
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864538</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-26 11:29:14 -0700</bug_when>
    <thetext>Committed r293436 (249994@main): &lt;https://commits.webkit.org/249994@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458373.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458327</attachid>
            <date>2022-04-25 21:52:29 -0700</date>
            <delta_ts>2022-04-26 08:25:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239748-20220425215228.patch</filename>
            <type>text/plain</type>
            <size>21406</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg5Yzk5YzhkOGI2MDg1NGY5
NjlmNjJjNjIyOGNmN2FmMjQwNzVlMzkuLjE4NDliYWNiNjg4NTcwYWQ5ZWFjM2ZmZTc3OTkxYjM0
OTZkOTVhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjItMDQtMjUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRqdXN0IHNvbWUgaW1h
Z2UgdHJhbnNjb2RpbmcgYmVoYXZpb3JzIHJlbGF0ZWQgdG8gIkNvcHkgQ3JvcHBlZCBJbWFnZSIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTc0OAor
ICAgICAgICByZGFyOi8vOTIyODcwMDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZWZhY3RvciBzb21lIGxvZ2ljIGZvciBleHRyYWN0aW5nICJjcm9w
cGVkIGltYWdlcyIgYW5kICJtYXJrdXAgaW1hZ2VzIi4gQ3VycmVudGx5LCB3ZSBhbHdheXMgdHJ5
IHRvIHByZXNlcnZlCisgICAgICAgIHRoZSBNSU1FIHR5cGUgb2YgdGhlIHNvdXJjZSBpbWFnZSBk
YXRhLCBidXQgdGhpcyBjYXVzZXMgdmFyaW91cyBpc3N1ZXMsIHN1Y2ggYXMgaW1hZ2VzIGxvc2lu
ZyBhbHBoYSBvciBmYWlsaW5nCisgICAgICAgIHRvIHRyYW5zY29kZSBhbHRvZ2V0aGVyLiBTZWUg
YmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0OiBJbWFnZUFuYWx5c2lzVGVz
dHMuUGVyZm9ybUltYWdlQW5hbHlzaXNNYXJrdXBXaXRoV2ViUEltYWdlcworCisgICAgICAgICog
UGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5oOgorICAgICAgICAqIFBsYXRmb3JtL2NvY29hL0Nv
Y29hSW1hZ2UubW06CisgICAgICAgIChXZWJLaXQ6OnRyYW5zY29kZVdpdGhQcmVmZXJyZWRNSU1F
VHlwZSk6CisKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciB0aGUgYGZhbGxiYWNrVHlwZUlkZW50
aWZpZXJgIGFyZ3VtZW50LCBub3cgdGhhdCBub3RoaW5nIGRlcGVuZHMgb24gaXQuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybS9jb2NvYS9JbWFnZUFuYWx5c2lzVXRpbGl0aWVzLmg6CisgICAgICAgICog
UGxhdGZvcm0vY29jb2EvSW1hZ2VBbmFseXNpc1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktp
dDo6aW1hZ2VEYXRhRm9yQ3JvcHBlZEltYWdlUmVzdWx0KToKKworICAgICAgICBBZGQgYSBuZXcg
aGVscGVyIG1ldGhvZCB0byBjb252ZXJ0IGEgQ0dJbWFnZVJlZiB0byByYXcgaW1hZ2UgZGF0YSB0
aGF0J3MgYXBwcm9wcmlhdGUgZm9yIHRoZSBnaXZlbiBzb3VyY2UgTUlNRQorICAgICAgICB0eXBl
LiBJZiB0aGUgdHlwZSBiZWxvbmdzIG9uZSBvZiBhIHNob3J0IGxpc3Qgb2Ygc3VwcG9ydGVkIHR5
cGVzLCB3ZSB1c2UgaXQgZGlyZWN0bHk7IG90aGVyd2lzZSwgZmFsbCBiYWNrIHRvCisgICAgICAg
ICJpbWFnZS9wbmciLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNpc01hcmt1
cE1lbnVdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpj
b3B5Q3JvcHBlZEltYWdlOnNvdXJjZU1JTUVUeXBlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKworICAgICAgICBEZXBsb3kgYGltYWdlRGF0
YUZvckNyb3BwZWRJbWFnZVJlc3VsdGAgaW4gcGxhY2Ugb2YgZGlyZWN0bHkgY2FsbGluZyBgdHJh
bnNjb2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlYC4KKworICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0TWVudVByb3h5TWFjOjphcHBseU1hcmt1cFRvQ29udHJvbGxlZEltYWdlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudUNvcHlDcm9wcGVkSW1hZ2UpOgorCiAyMDIyLTA0
LTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIGZpeCB0aGUgbWFjT1MgTW9udGVyZXkgYnVpbGQgYWZ0ZXIgcjI5MzM0MApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9Db2NvYUltYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0NvY29hSW1hZ2UuaAppbmRleCA5MWMwODhiZTdlMzdk
MzRlMzk1YTljNGJlYWMyODY3ZjQ3ZTdkMDJjLi44YTg1YmExN2U4MjEwZTRiYWQ4ODM1NTMxNzAx
ZWU3ZTE4Njg0YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0Nv
Y29hSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0NvY29hSW1hZ2Uu
aApAQCAtNDAsNiArNDAsNiBAQCBPQkpDX0NMQVNTIE5TRGF0YTsKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBSZXRhaW5QdHI8TlNEYXRhPiB0cmFuc2NvZGUoQ0dJbWFnZVJlZiwgQ0ZTdHJpbmdSZWYg
dHlwZUlkZW50aWZpZXIpOwotc3RkOjpwYWlyPFJldGFpblB0cjxOU0RhdGE+LCBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+PiB0cmFuc2NvZGVXaXRoUHJlZmVycmVkTUlNRVR5cGUoQ0dJbWFnZVJlZiwg
Q0ZTdHJpbmdSZWYgcHJlZmVycmVkTUlNRVR5cGUsIENGU3RyaW5nUmVmIGZhbGxiYWNrVHlwZUlk
ZW50aWZpZXIpOworc3RkOjpwYWlyPFJldGFpblB0cjxOU0RhdGE+LCBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+PiB0cmFuc2NvZGVXaXRoUHJlZmVycmVkTUlNRVR5cGUoQ0dJbWFnZVJlZiwgQ0ZTdHJp
bmdSZWYgcHJlZmVycmVkTUlNRVR5cGUpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5tbQppbmRleCBlZDIzYjlhZTAyNDYz
MmI4YjA2MjU2NzY5M2UxMTEwZDRiZWU3OWYxLi5jOTVkNDFlZDE4NjkxZDQ4NjJkZTcyODcxZjJj
NDc2NmM2M2FjOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0Nv
Y29hSW1hZ2UubW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9Db2NvYUltYWdl
Lm1tCkBAIC01MCwxOSArNTAsMTkgQEAgUmV0YWluUHRyPE5TRGF0YT4gdHJhbnNjb2RlKENHSW1h
Z2VSZWYgaW1hZ2UsIENGU3RyaW5nUmVmIHR5cGVJZGVudGlmaWVyKQogICAgIHJldHVybiBkYXRh
OwogfQogCi1zdGQ6OnBhaXI8UmV0YWluUHRyPE5TRGF0YT4sIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4+IHRyYW5zY29kZVdpdGhQcmVmZXJyZWRNSU1FVHlwZShDR0ltYWdlUmVmIGltYWdlLCBDRlN0
cmluZ1JlZiBwcmVmZXJyZWRNSU1FVHlwZSwgQ0ZTdHJpbmdSZWYgZmFsbGJhY2tUeXBlSWRlbnRp
ZmllcikKK3N0ZDo6cGFpcjxSZXRhaW5QdHI8TlNEYXRhPiwgUmV0YWluUHRyPENGU3RyaW5nUmVm
Pj4gdHJhbnNjb2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlKENHSW1hZ2VSZWYgaW1hZ2UsIENGU3Ry
aW5nUmVmIHByZWZlcnJlZE1JTUVUeXBlKQogewotICAgIGF1dG8gdGFyZ2V0VHlwZSA9IFJldGFp
blB0ciB7IGZhbGxiYWNrVHlwZUlkZW50aWZpZXIgfTsKLSAgICBpZiAoQ0ZTdHJpbmdHZXRMZW5n
dGgocHJlZmVycmVkTUlNRVR5cGUpKSB7CiAjaWYgSEFWRShVTklGT1JNX1RZUEVfSURFTlRJRklF
UlNfRlJBTUVXT1JLKQotICAgICAgICBhdXRvIHByZWZlcnJlZFR5cGVJZGVudGlmaWVyID0gUmV0
YWluUHRyIHsgKF9fYnJpZGdlIENGU3RyaW5nUmVmKVtVVFR5cGUgdHlwZVdpdGhNSU1FVHlwZToo
X19icmlkZ2UgTlNTdHJpbmcgKilwcmVmZXJyZWRNSU1FVHlwZSBjb25mb3JtaW5nVG9UeXBlOlVU
VHlwZUltYWdlXS5pZGVudGlmaWVyIH07CisgICAgYXV0byBwcmVmZXJyZWRUeXBlSWRlbnRpZmll
ciA9IFJldGFpblB0ciB7IChfX2JyaWRnZSBDRlN0cmluZ1JlZilbVVRUeXBlIHR5cGVXaXRoTUlN
RVR5cGU6KF9fYnJpZGdlIE5TU3RyaW5nICopcHJlZmVycmVkTUlNRVR5cGUgY29uZm9ybWluZ1Rv
VHlwZTpVVFR5cGVJbWFnZV0uaWRlbnRpZmllciB9OwogI2Vsc2UKLSAgICAgICAgYXV0byBwcmVm
ZXJyZWRUeXBlSWRlbnRpZmllciA9IGFkb3B0Q0YoVVRUeXBlQ3JlYXRlUHJlZmVycmVkSWRlbnRp
ZmllckZvclRhZyhrVVRUYWdDbGFzc01JTUVUeXBlLCBwcmVmZXJyZWRNSU1FVHlwZSwga1VUVHlw
ZUltYWdlKSk7CisgICAgYXV0byBwcmVmZXJyZWRUeXBlSWRlbnRpZmllciA9IGFkb3B0Q0YoVVRU
eXBlQ3JlYXRlUHJlZmVycmVkSWRlbnRpZmllckZvclRhZyhrVVRUYWdDbGFzc01JTUVUeXBlLCBw
cmVmZXJyZWRNSU1FVHlwZSwga1VUVHlwZUltYWdlKSk7CiAjZW5kaWYKLSAgICAgICAgaWYgKFdl
YkNvcmU6OmlzU3VwcG9ydGVkSW1hZ2VUeXBlKHByZWZlcnJlZFR5cGVJZGVudGlmaWVyLmdldCgp
KSkKLSAgICAgICAgICAgIHRhcmdldFR5cGUgPSBXVEZNb3ZlKHByZWZlcnJlZFR5cGVJZGVudGlm
aWVyKTsKKyAgICBpZiAoV2ViQ29yZTo6aXNTdXBwb3J0ZWRJbWFnZVR5cGUocHJlZmVycmVkVHlw
ZUlkZW50aWZpZXIuZ2V0KCkpKSB7CisgICAgICAgIGlmIChhdXRvIGRhdGEgPSB0cmFuc2NvZGUo
aW1hZ2UsIHByZWZlcnJlZFR5cGVJZGVudGlmaWVyLmdldCgpKTsgW2RhdGEgbGVuZ3RoXSkKKyAg
ICAgICAgICAgIHJldHVybiB7IFdURk1vdmUoZGF0YSksIFdURk1vdmUocHJlZmVycmVkVHlwZUlk
ZW50aWZpZXIpIH07CiAgICAgfQotICAgIHJldHVybiB7IHRyYW5zY29kZShpbWFnZSwgdGFyZ2V0
VHlwZS5nZXQoKSksIHRhcmdldFR5cGUgfTsKKworICAgIHJldHVybiB7IG5pbCwgbmlsIH07CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9jb2NvYS9JbWFnZUFuYWx5c2lzVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL2NvY29hL0ltYWdlQW5hbHlzaXNVdGlsaXRpZXMuaAppbmRleCA3OTVmYzJjYWJmZmE0MGI2
NTAyZTRkMTkxNGJhMThmMDlmMWIzM2ZkLi44ZTU3Y2U0MWIwOTI3YzU1MzhiZTBiMzYyYTYwNDgx
Mjk0ZDI2OTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0ltYWdl
QW5hbHlzaXNVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0lt
YWdlQW5hbHlzaXNVdGlsaXRpZXMuaApAQCAtMzEsNiArMzEsOCBAQAogI2ltcG9ydCA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKK09CSkNfQ0xB
U1MgTlNEYXRhOworCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKIHVz
aW5nIENvY29hSW1hZ2VBbmFseXNpcyA9IFZLQ0ltYWdlQW5hbHlzaXM7CiB1c2luZyBDb2NvYUlt
YWdlQW5hbHl6ZXIgPSBWS0NJbWFnZUFuYWx5emVyOwpAQCAtNjEsNiArNjMsOCBAQCBSZXRhaW5Q
dHI8Q29jb2FJbWFnZUFuYWx5emVyUmVxdWVzdD4gY3JlYXRlSW1hZ2VBbmFseXplclJlcXVlc3Qo
Q0dJbWFnZVJlZiwgVktBbgogdm9pZCByZXF1ZXN0SW1hZ2VBbmFseXNpc1dpdGhJZGVudGlmaWVy
KENvY29hSW1hZ2VBbmFseXplciAqLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIENHSW1hZ2VS
ZWYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0
JiYpPiYmKTsKIHZvaWQgcmVxdWVzdEltYWdlQW5hbHlzaXNNYXJrdXAoQ0dJbWFnZVJlZiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChDR0ltYWdlUmVmLCBDR1JlY3QpPiYmKTsKIAorc3RkOjpwYWly
PFJldGFpblB0cjxOU0RhdGE+LCBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+PiBpbWFnZURhdGFGb3JD
cm9wcGVkSW1hZ2VSZXN1bHQoQ0dJbWFnZVJlZiwgY29uc3QgU3RyaW5nJiBzb3VyY2VNSU1FVHlw
ZSk7CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogdXNpbmcgUGxhdGZvcm1JbWFnZUFuYWx5
c2lzT2JqZWN0ID0gVktDSW1hZ2VBbmFseXNpc0ludGVyYWN0aW9uOwogI2Vsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvSW1hZ2VBbmFseXNpc1V0aWxpdGllcy5t
bSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvSW1hZ2VBbmFseXNpc1V0aWxpdGllcy5t
bQppbmRleCA3ZDFhNWM2ZDk1YzFmNjNiZDMwNDgwMGE5NWViZjQxZmQ4ZTU4NTc2Li5iZTM2Njdl
MGE0NzNhYWU0MWIwYzhlYWUxZWJiNmQyNmE0MTIwMWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL2NvY29hL0ltYWdlQW5hbHlzaXNVdGlsaXRpZXMubW0KKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9JbWFnZUFuYWx5c2lzVXRpbGl0aWVzLm1tCkBAIC0zMyw4
ICszMywxMyBAQAogI2ltcG9ydCAiVHJhbnNhY3Rpb25JRC5oIgogI2ltcG9ydCA8V2ViQ29yZS9U
ZXh0UmVjb2duaXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvRmVhdHVyZUZs
YWdzU1BJLmg+CisjaW1wb3J0IDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2ltcG9ydCA8d3Rm
L1dvcmtRdWV1ZS5oPgogCisjaWYgSEFWRShVTklGT1JNX1RZUEVfSURFTlRJRklFUlNfRlJBTUVX
T1JLKQorI2ltcG9ydCA8VW5pZm9ybVR5cGVJZGVudGlmaWVycy9Vbmlmb3JtVHlwZUlkZW50aWZp
ZXJzLmg+CisjZW5kaWYKKwogI2ltcG9ydCA8cGFsL2NvY29hL1Zpc2lvbktpdENvcmVTb2Z0TGlu
ay5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE3NCw2ICsxNzksMjcgQEAgYm9vbCBpc0xp
dmVUZXh0QXZhaWxhYmxlQW5kRW5hYmxlZCgpCiAgICAgcmV0dXJuIFBBTDo6aXNWaXNpb25LaXRD
b3JlRnJhbWV3b3JrQXZhaWxhYmxlKCk7CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNf
RU5IQU5DRU1FTlRTKQorCitzdGQ6OnBhaXI8UmV0YWluUHRyPE5TRGF0YT4sIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4+IGltYWdlRGF0YUZvckNyb3BwZWRJbWFnZVJlc3VsdChDR0ltYWdlUmVmIGlt
YWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU1JTUVUeXBlKQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZCBhbGxvd2VkTUlNRVR5cGVzRm9yVHJhbnNjb2RpbmcgPSBbXSB7CisgICAgICAgIHN0
YXRpYyBjb25zdGV4cHIgc3RkOjphcnJheSB0eXBlcyB7ICJpbWFnZS9wbmciX3MsICJpbWFnZS90
aWZmIl9zLCAiaW1hZ2UvZ2lmIl9zLCAiaW1hZ2UvYm1wIl9zIH07CisgICAgICAgIE1lbW9yeUNv
bXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IHNldDsKKyAgICAgICAgc2V0
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc3RkOjpzaXplKHR5cGVzKSk7CisgICAgICAgIGZvciAo
YXV0byB0eXBlIDogdHlwZXMpCisgICAgICAgICAgICBzZXQuYWRkKHR5cGUpOworICAgICAgICBy
ZXR1cm4gc2V0OworICAgIH0oKTsKKworICAgIGlmICghc291cmNlTUlNRVR5cGUuaXNFbXB0eSgp
ICYmIGFsbG93ZWRNSU1FVHlwZXNGb3JUcmFuc2NvZGluZy0+Y29udGFpbnMoc291cmNlTUlNRVR5
cGUpKQorICAgICAgICByZXR1cm4gdHJhbnNjb2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlKGltYWdl
LCBzb3VyY2VNSU1FVHlwZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKworICAgIHJldHVybiB0
cmFuc2NvZGVXaXRoUHJlZmVycmVkTUlNRVR5cGUoaW1hZ2UsIENGU1RSKCJpbWFnZS9wbmciKSk7
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IDhlNWVhYWM1MjhmMTk1MTM1OTc2NzE2ZGI5ODI2MTdjNTYyNmIx
MTQuLjg3ZjI0MDA1ZThkNjc5Y2M4ZTBkNmI1N2ExNjI4NWQzYzNmOWMxNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQpAQCAtNDc1OCw3ICs0NzU4LDcgQEAgLSAoVUlNZW51ICopaW1hZ2VBbmFseXNpc01hcmt1
cE1lbnUKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIFtlbGVtZW50Q29udGV4
dCwgaW1hZ2UsIHByZWZlcnJlZE1JTUVUeXBlXSA9ICp2aWV3LT5faW1hZ2VBbmFseXNpc01hcmt1
cERhdGE7Ci0gICAgICAgIGlmIChhdXRvIFtkYXRhLCB0eXBlXSA9IFdlYktpdDo6dHJhbnNjb2Rl
V2l0aFByZWZlcnJlZE1JTUVUeXBlKGltYWdlLmdldCgpLCBwcmVmZXJyZWRNSU1FVHlwZS5jcmVh
dGVDRlN0cmluZygpLmdldCgpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpVVRUeXBlVElGRi5pZGVu
dGlmaWVyKTsgZGF0YSkKKyAgICAgICAgaWYgKGF1dG8gW2RhdGEsIHR5cGVdID0gV2ViS2l0Ojpp
bWFnZURhdGFGb3JDcm9wcGVkSW1hZ2VSZXN1bHQoaW1hZ2UuZ2V0KCksIHByZWZlcnJlZE1JTUVU
eXBlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOyBkYXRhKQogICAgICAgICAgICAgdmlldy0+X3Bh
Z2UtPnJlcGxhY2VJbWFnZVdpdGhNYXJrdXBSZXN1bHRzKGVsZW1lbnRDb250ZXh0LCB7IFN0cmlu
ZyB7IHR5cGUuZ2V0KCkgfSB9LCB7IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihbZGF0YSBi
eXRlc10pLCBbZGF0YSBsZW5ndGhdIH0pOwogICAgIH1dOwogfQpAQCAtMTEwMzEsNyArMTEwMzEs
NyBAQCAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50
ICopYXNzaXN0YW50IGNvcHlDcm9wcGVkSW1hZwogICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBbZGF0YSwgdHlwZV0gPSBXZWJLaXQ6
OnRyYW5zY29kZVdpdGhQcmVmZXJyZWRNSU1FVHlwZShyZXN1bHQgPzogW29yaWdpbmFsSW1hZ2Ug
Q0dJbWFnZV0sIChfX2JyaWRnZSBDRlN0cmluZ1JlZilzb3VyY2VNSU1FVHlwZS5nZXQoKSwgKF9f
YnJpZGdlIENGU3RyaW5nUmVmKVVUVHlwZVRJRkYuaWRlbnRpZmllcik7CisgICAgICAgIGF1dG8g
W2RhdGEsIHR5cGVdID0gV2ViS2l0OjppbWFnZURhdGFGb3JDcm9wcGVkSW1hZ2VSZXN1bHQocmVz
dWx0LCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpc291cmNlTUlNRVR5cGUuZ2V0KCkpOwogICAgICAg
ICBpZiAoIWRhdGEpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggMTE4Nzcx
M2IyNmUxNTMxOWI4MzI2NjAyMDJiMWMxN2I2ZTA1ZmFkMi4uZTg4MzllYTM5ODQzMDcwZWFmNDFl
ZGVmYmJhN2JkZGI2NTc4MjllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lk
IFdlYkNvbnRleHRNZW51UHJveHlNYWM6OmFwcGx5TWFya3VwVG9Db250cm9sbGVkSW1hZ2UoKQog
ICAgICAgICBpZiAoIXByb3RlY3RlZFBhZ2UgfHwgIXJlc3VsdCkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBhdXRvIFtkYXRhLCB0eXBlXSA9IHRyYW5zY29kZVdpdGhQcmVmZXJyZWRN
SU1FVHlwZShyZXN1bHQsIHByZWZlcnJlZE1JTUVUeXBlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCks
IChfX2JyaWRnZSBDRlN0cmluZ1JlZilVVFR5cGVUSUZGLmlkZW50aWZpZXIpOworICAgICAgICBh
dXRvIFtkYXRhLCB0eXBlXSA9IGltYWdlRGF0YUZvckNyb3BwZWRJbWFnZVJlc3VsdChyZXN1bHQs
IHByZWZlcnJlZE1JTUVUeXBlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwogICAgICAgICBpZiAo
IWRhdGEpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IGY0MjFkOTc2OTA1Mzc1MDkyMDA2NmU0YTIy
OTg1ZjEzNGRlNzFhZWIuLmM2ZGI2MGU3M2VhMzAwNGM2ZWYwNjI5ZDA5MzU4OWE4ODQyOTQxMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpA
QCAtNzkxLDcgKzc5MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudUNv
cHlDcm9wcGVkSW1hZ2UoY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRNSU1FCiAgICAgaWYgKCFtX2Ny
b3BwZWRJbWFnZUZvckNvbnRleHRNZW51KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIFtk
YXRhLCB0eXBlXSA9IHRyYW5zY29kZVdpdGhQcmVmZXJyZWRNSU1FVHlwZShtX2Nyb3BwZWRJbWFn
ZUZvckNvbnRleHRNZW51LmdldCgpLCBwcmVmZXJyZWRNSU1FVHlwZS5jcmVhdGVDRlN0cmluZygp
LmdldCgpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpVVRUeXBlVElGRi5pZGVudGlmaWVyKTsKKyAg
ICBhdXRvIFtkYXRhLCB0eXBlXSA9IGltYWdlRGF0YUZvckNyb3BwZWRJbWFnZVJlc3VsdChtX2Ny
b3BwZWRJbWFnZUZvckNvbnRleHRNZW51LmdldCgpLCBwcmVmZXJyZWRNSU1FVHlwZS5jcmVhdGVD
RlN0cmluZygpLmdldCgpKTsKICAgICBpZiAoIWRhdGEpCiAgICAgICAgIHJldHVybjsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZlMGFjZjI0
ZWI0NDU0MTQxNjU4NmIxZWI5NzVhYThlMTU0MDlmODYuLjMxOTVkZmNkMDkwMGI5YjliZTJjMmVi
YmY1ZWEzYTBmMTQwZjU3OWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMi0wNC0yNSAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGp1c3Qgc29tZSBpbWFnZSB0cmFu
c2NvZGluZyBiZWhhdmlvcnMgcmVsYXRlZCB0byAiQ29weSBDcm9wcGVkIEltYWdlIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NzQ4CisgICAgICAg
IHJkYXI6Ly85MjI4NzAwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCB0byBleGVyY2lzZSB0aGUgY2hhbmdlLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbWFnZUFuYWx5
c2lzVGVzdHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpydW5NYXJrdXBUZXN0KToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2Evd2VicC1pbWFnZS5odG1sOiBBZGRlZC4KKwogMjAyMi0wNC0yNSAgSm9u
YXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW2J1aWxkLndlYmtp
dC5vcmddIFVzZSBHaXRIdWIgY2hlY2tvdXRzIChGb2xsb3ctdXApCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGQ3NWZjMTgyZmZmMjc5N2Y0ODk1NDM2Njc0NTIxMWIxYzI5NDM2MWQuLjc1Nzdm
NzZmZWU2YzdkMjc5MGJkOTNkMmZkOTc3OGNjODFkODdhMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMDcyLDYgKzEwNzIsOCBAQAogCQlGNDU4Mjg2MDI3NzUwNTI1MDAzRUNDRjMgLyog
bW9kYWwtY29udGFpbmVyLWN1c3RvbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTgyODVGMjc3NTA1MUIwMDNFQ0NGMyAvKiBtb2Rh
bC1jb250YWluZXItY3VzdG9tLmh0bWwgKi87IH07CiAJCUY0NUI2M0ZCMUYxOTdGNEEwMDlEMzhC
OSAvKiBpbWFnZS1tYXAuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDVCNjNGQTFGMTk3RjMzMDA5RDM4QjkgLyogaW1hZ2UtbWFwLmh0
bWwgKi87IH07CiAJCUY0NUI2M0ZFMUYxOUQ0MTAwMDlEMzhCOSAvKiBBY3Rpb25TaGVldFRlc3Rz
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1QjYz
RkMxRjE5RDQxMDAwOUQzOEI5IC8qIEFjdGlvblNoZWV0VGVzdHMubW0gKi87IH07CisJCUY0NUM2
NDAwMjgxNzhBRDMwMDkwREZBQiAvKiBncmVlbi00MDB4NDAwLndlYnAgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1QzYzRkYyODE3OEFDNDAw
OTBERkFCIC8qIGdyZWVuLTQwMHg0MDAud2VicCAqLzsgfTsKKwkJRjQ1QzY0MDEyODE3OEFENzAw
OTBERkFCIC8qIHdlYnAtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDVDNjNGRTI4MTc4QTUzMDA5MERGQUIgLyogd2VicC1p
bWFnZS5odG1sICovOyB9OwogCQlGNDVEMzg5MTIxNUE3QjRCMDAyQTI5NzkgLyogVGVzdEluc3Bl
Y3RvckJhci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0NUQzODkwMjE1QTdCNEIwMDJBMjk3OSAvKiBUZXN0SW5zcGVjdG9yQmFyLm1tICovOyB9Owog
CQlGNDVFMTU3MzIxMTJDRTI5MDAzMDdFODIgLyogS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1RTE1NzIyMTEy
Q0UyOTAwMzA3RTgyIC8qIEtleWJvYXJkSW5wdXRUZXN0c0lPUy5tbSAqLzsgfTsKIAkJRjQ1RTE1
NzYyMTEyQ0U2MjAwMzA3RTgyIC8qIFRlc3RJbnB1dERlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1RTE1NzUyMTEyQ0U2MjAwMzA3RTgy
IC8qIFRlc3RJbnB1dERlbGVnYXRlLm1tICovOyB9OwpAQCAtMTM5Nyw2ICsxMzk5LDcgQEAKIAkJ
CQkwNzQ5OTQ0MjFFQTUwMzRCMDAwREE0NUUgLyogZ2V0VXNlck1lZGlhQXVkaW9WaWRlb0NhcHR1
cmUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkwNzQ5OTQ1MjFFQTUwMzRCMDAwREE0
NkUgLyogZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUY0NkEwOTVCMUVEOEE2RTYwMEQ0QUE1NSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNDVDNjQwMDI4MTc4QUQzMDA5MERGQUIgLyogZ3Jl
ZW4tNDAweDQwMC53ZWJwIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3MzI1NUE1MjIxMzlC
QzcwMDM5NkFFOCAvKiBoZWxsb3dvcmxkLndlYmFyY2hpdmUgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJOUI0RjhGQTcxNTlENTJERDAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVt
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOUIyNkZDQ0ExNTlEMTZERTAwQ0MzNzY1
IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LApAQCAtMTY2OSw2ICsxNjcyLDcgQEAKIAkJCQkxQzJCODE4NjFDODkyNTlEMDBBNTUyOUYgLyog
d2ViZm9udC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTMxRTlCREEzMjQ3RjU3Mjkw
MDJFNTFBMiAvKiB3ZWJnbC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTdBMzNGRjM0
MjdDODMxN0QwMEQ3RTAzRSAvKiB3ZWJraXQtbG9nby5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CisJCQkJRjQ1QzY0MDEyODE3OEFENzAwOTBERkFCIC8qIHdlYnAtaW1hZ2UuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQk1MTcxNEVCNDFDRjhDNzhDMDA0NzIzQzQgLyogV2ViUHJvY2Vz
c0tpbGxJREJDbGVhbnVwLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTcxNEVC
NTFDRjhDNzhDMDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTIuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQk1MzY3NzAzNjFDQzgxQjYxMDBENDI1QjEgLyogV2ViU2Ny
aXB0T2JqZWN0RGVzY3JpcHRpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTMwOTcs
NiArMzEwMSw4IEBACiAJCUY0NTgyODVGMjc3NTA1MUIwMDNFQ0NGMyAvKiBtb2RhbC1jb250YWlu
ZXItY3VzdG9tLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibW9kYWwtY29udGFp
bmVyLWN1c3RvbS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1QjYzRkEx
RjE5N0YzMzAwOUQzOEI5IC8qIGltYWdlLW1hcC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImltYWdlLW1hcC5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1QjYzRkMxRjE5RDQxMDAwOUQz
OEI5IC8qIEFjdGlvblNoZWV0VGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY3Rpb25T
aGVldFRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDVDNjNGRTI4MTc4
QTUzMDA5MERGQUIgLyogd2VicC1pbWFnZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYnAtaW1hZ2UuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NUM2M0ZGMjgxNzhBQzQwMDkwREZB
QiAvKiBncmVlbi00MDB4NDAwLndlYnAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gImdyZWVuLTQwMHg0MDAud2VicCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NUQzODhGMjE1QTdCNEIwMDJBMjk3OSAvKiBUZXN0
SW5zcGVjdG9yQmFyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlc3RJbnNwZWN0b3JCYXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1RDM4OTAyMTVBN0I0QjAwMkEyOTc5IC8qIFRlc3RJ
bnNwZWN0b3JCYXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0SW5zcGVjdG9yQmFyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDVFMTU3MjIxMTJDRTI5MDAzMDdFODIg
LyogS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gS2V5Ym9h
cmRJbnB1dFRlc3RzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDE5NSw2
ICs0MjAxLDcgQEAKIAkJCQkwN0UxRjZBMTFGRkM0NEY5MDA5NkM3RUMgLyogZ2V0RGlzcGxheU1l
ZGlhLmh0bWwgKi8sCiAJCQkJNDY3QzU2NTEyMUI1RUNERjAwNTc1MTZEIC8qIEdldFNlc3Npb25D
b29raWUuaHRtbCAqLywKIAkJCQlGNDdEMzBFRDFFRDI4QTZDMDAwNDgyRTEgLyogZ2lmLWFuZC1m
aWxlLWlucHV0Lmh0bWwgKi8sCisJCQkJRjQ1QzYzRkYyODE3OEFDNDAwOTBERkFCIC8qIGdyZWVu
LTQwMHg0MDAud2VicCAqLywKIAkJCQlFQjIzMEQzRDI0NUU3MjJFMDBDNjZBRDEgLyogSURCQ2hl
Y2twb2ludFdBTC5odG1sICovLAogCQkJCTUxMDQ3Nzc2MUQyOThFNTcwMDk3NDdFQiAvKiBJREJE
ZWxldGVSZWNvdmVyeS5odG1sICovLAogCQkJCTUxMDQ3NzZGMUQyOThEODUwMDk3NDdFQiAvKiBJ
REJEZWxldGVSZWNvdmVyeS5zcWxpdGUzICovLApAQCAtNDM3MCw2ICs0Mzc3LDcgQEAKIAkJCQk1
NzQyMTc4RDI0MDBEMjZDMDAyQjMwM0QgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1sYS5odG1sICovLAogCQkJCTQ2QTQ0QTUzMjVBNzgyREQwMEY2MUUxNiAvKiB3ZWJhdWRp
by1jcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UuaHRtbCAqLywKIAkJCQk3QTMzRkYzMjI3QzgzMTRE
MDBEN0UwM0UgLyogd2Via2l0LWxvZ28ucGRmICovLAorCQkJCUY0NUM2M0ZFMjgxNzhBNTMwMDkw
REZBQiAvKiB3ZWJwLWltYWdlLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjIxQ0Y4Qzc2MTAwNDcyM0M0
IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0xLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjMxQ0Y4
Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0bWwgKi8sCiAJCQkJ
NTEyMEM4M0IxRTY3NEUzNTAwMjVCMjUwIC8qIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5o
dG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9JbWFnZUFuYWx5c2lzVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0ltYWdlQW5hbHlzaXNUZXN0cy5tbQppbmRleCBiZWQzZTA1ZjFiNTkyOWVlOWVkZjhj
MmFkYTRkNGZhMmU0Y2VlMzNjLi5iMDBiNjYzZjk0NWUxYzcyYTFjYmU4ZWY2NTVmNGQxODUzOTBj
ODE3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lt
YWdlQW5hbHlzaXNUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0ltYWdlQW5hbHlzaXNUZXN0cy5tbQpAQCAtMzcyLDcgKzM3Miw3IEBAIHN0YXRpYyB2
b2lkIGludm9rZUltYWdlTWFya3VwQWN0aW9uKFRlc3RXS1dlYlZpZXcgKndlYlZpZXcpCiAgICAg
W3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwogfQogCi1URVNUKEltYWdl
QW5hbHlzaXNUZXN0cywgUGVyZm9ybUltYWdlQW5hbHlzaXNNYXJrdXApCitzdGF0aWMgdm9pZCBy
dW5NYXJrdXBUZXN0KE5TU3RyaW5nICp0ZXN0UGFnZSwgTlNTdHJpbmcgKnNjcmlwdFRvU2VsZWN0
VGV4dCwgRnVuY3Rpb248dm9pZChUZXN0V0tXZWJWaWV3ICosIE5TU3RyaW5nICopPiYmIGNoZWNr
V2ViVmlldykKIHsKICAgICBhdXRvIGljb25QYXRoID0gW05TQnVuZGxlLm1haW5CdW5kbGUgcGF0
aEZvclJlc291cmNlOkAiaWNvbiIgb2ZUeXBlOkAicG5nIiBpbkRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAgICAgUmV0YWluUHRyIGljb25JbWFnZSA9IFtVSUltYWdlIGlt
YWdlV2l0aENvbnRlbnRzT2ZGaWxlOmljb25QYXRoXTsKQEAgLTM4NiwyMSArMzg2LDM2IEBAIFRF
U1QoSW1hZ2VBbmFseXNpc1Rlc3RzLCBQZXJmb3JtSW1hZ2VBbmFseXNpc01hcmt1cCkKIAogICAg
IFt3ZWJWaWV3IF9zZXRFZGl0YWJsZTpZRVNdOwogICAgIFt3ZWJWaWV3IF9zZXRJbnB1dERlbGVn
YXRlOmlucHV0RGVsZWdhdGUuZ2V0KCldOwotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
VGVzdFBhZ2VOYW1lZDpAIm11bHRpcGxlLWltYWdlcyJdOwotICAgIFt3ZWJWaWV3IG9iamVjdEJ5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRv
Y3VtZW50LmJvZHksIDAsIGRvY3VtZW50LmltYWdlc1swXSwgMSkiXTsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6dGVzdFBhZ2VdOworICAgIFt3ZWJWaWV3IG9i
amVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6c2NyaXB0VG9TZWxlY3RUZXh0XTsKICAgICBbd2Vi
VmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CiAKICAgICBOU1N0cmluZyAqcHJl
dmlvdXNTZWxlY3RlZFRleHQgPSBbd2ViVmlldyBzZWxlY3RlZFRleHRdOwogICAgIGludm9rZUlt
YWdlTWFya3VwQWN0aW9uKHdlYlZpZXcuZ2V0KCkpOworICAgIGNoZWNrV2ViVmlldyh3ZWJWaWV3
LmdldCgpLCBwcmV2aW91c1NlbGVjdGVkVGV4dCk7Cit9CiAKLSAgICBFWFBFQ1RfV0tfU1RSRVEo
cHJldmlvdXNTZWxlY3RlZFRleHQsIFt3ZWJWaWV3IHNlbGVjdGVkVGV4dF0pOwotICAgIFV0aWw6
OndhaXRGb3JDb25kaXRpb25XaXRoTG9nZ2luZyhbJl0gewotICAgICAgICByZXR1cm4gW1t3ZWJW
aWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5pbWFnZXNbMF0uZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiXSBpbnRWYWx1ZV0gPT0gMjE1OwotICAgIH0sIDMs
IEAiRXhwZWN0ZWQgYm91bmRpbmcgY2xpZW50IHJlY3QgdG8gYmVjb21lIDIxNS4iKTsKK1RFU1Qo
SW1hZ2VBbmFseXNpc1Rlc3RzLCBQZXJmb3JtSW1hZ2VBbmFseXNpc01hcmt1cCkKK3sKKyAgICBy
dW5NYXJrdXBUZXN0KEAibXVsdGlwbGUtaW1hZ2VzIiwgQCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNl
QW5kRXh0ZW50KGRvY3VtZW50LmJvZHksIDAsIGRvY3VtZW50LmltYWdlc1swXSwgMSkiLCBbXShU
ZXN0V0tXZWJWaWV3ICp3ZWJWaWV3LCBOU1N0cmluZyAqcHJldmlvdXNTZWxlY3RlZFRleHQpIHsK
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKHByZXZpb3VzU2VsZWN0ZWRUZXh0LCB3ZWJWaWV3LnNl
bGVjdGVkVGV4dCk7CisgICAgICAgIFV0aWw6OndhaXRGb3JDb25kaXRpb25XaXRoTG9nZ2luZyhb
Jl0geworICAgICAgICAgICAgcmV0dXJuIFtbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiZG9jdW1lbnQuaW1hZ2VzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRo
Il0gaW50VmFsdWVdID09IDIxNTsKKyAgICAgICAgfSwgMywgQCJFeHBlY3RlZCBib3VuZGluZyBj
bGllbnQgcmVjdCB0byBiZWNvbWUgMjE1LiIpOworCisgICAgICAgIE5TU3RyaW5nICp1bmRvVGl0
bGUgPSB3ZWJWaWV3LnVuZG9NYW5hZ2VyLnVuZG9NZW51SXRlbVRpdGxlOworICAgICAgICBFWFBF
Q1RfR1QodW5kb1RpdGxlLmxlbmd0aCwgMFUpOworICAgICAgICBFWFBFQ1RfRkFMU0UoW3VuZG9U
aXRsZSBjb250YWluc1N0cmluZzpAIlBhc3RlIl0pOworICAgIH0pOworfQogCi0gICAgTlNTdHJp
bmcgKnVuZG9UaXRsZSA9IFt3ZWJWaWV3IHVuZG9NYW5hZ2VyXS51bmRvTWVudUl0ZW1UaXRsZTsK
LSAgICBFWFBFQ1RfR1QodW5kb1RpdGxlLmxlbmd0aCwgMFUpOwotICAgIEVYUEVDVF9GQUxTRShb
dW5kb1RpdGxlIGNvbnRhaW5zU3RyaW5nOkAiUGFzdGUiXSk7CitURVNUKEltYWdlQW5hbHlzaXNU
ZXN0cywgUGVyZm9ybUltYWdlQW5hbHlzaXNNYXJrdXBXaXRoV2ViUEltYWdlcykKK3sKKyAgICBy
dW5NYXJrdXBUZXN0KEAid2VicC1pbWFnZSIsIEAiZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hp
bGRyZW4oZG9jdW1lbnQuYm9keSkiLCBbXShUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3LCBOU1N0cmlu
ZyAqKSB7CisgICAgICAgIFV0aWw6OndhaXRGb3JDb25kaXRpb25XaXRoTG9nZ2luZyhbJl0gewor
ICAgICAgICAgICAgcmV0dXJuIFtbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZG9jdW1lbnQuaW1hZ2VzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIl0gaW50
VmFsdWVdID09IDIxNTsKKyAgICAgICAgfSwgMywgQCJFeHBlY3RlZCBib3VuZGluZyBjbGllbnQg
cmVjdCB0byBiZWNvbWUgMjE1LiIpOworICAgIH0pOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElN
QUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvZ3JlZW4tNDAweDQw
MC53ZWJwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9ncmVlbi00MDB4
NDAwLndlYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg2ZjFiMDcyMDVlYjBhM2FjNGEzOTk0NThlZGI0OGQ2MjQ0
N2QxNApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzY4CnpjbVdJWWJhVHNLV01CdylicVdYenV1
ekJydklBNVo8fXp3Y1Y0VDJjN3BPN0dVM3Q7TWckZilEMXplbiZjQE43SQp6PD9nVVFVfDxsdyFN
XlhOQzRjUnZCRHZvd1BpKClQSlc+NjJAYFVmVilmTH13XkstdFJHcEJ0N053K2RFe1FHfCgKY15a
KTxQRWJDOTBYVVlIbkReYnM1LXpJLWdmQl91PDBOMTZyYl5yaFgKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
d2VicC1pbWFnZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93
ZWJwLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2EwY2ZlNTMxOWMwYTQ3MTViYTkzZGNjZGNlYmE0
MTcwOGU5MGJkNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2Evd2VicC1pbWFnZS5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5p
dGlhbC1zY2FsZT0xJz48L2hlYWQ+CisgICAgPGJvZHkgc3R5bGU9J21hcmdpbjogMHB4Oyc+Cisg
ICAgICAgIDxwPkltYWdlPC9wPgorICAgICAgICA8aW1nIHNyYz0iZ3JlZW4tNDAweDQwMC53ZWJw
Ij48L2ltZz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="487169"
          type_id="1"
          status="+"
          setter="katherine_cheney"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458373</attachid>
            <date>2022-04-26 08:55:39 -0700</date>
            <delta_ts>2022-04-26 11:29:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-239748-20220426085538.patch</filename>
            <type>text/plain</type>
            <size>21847</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg5Yzk5YzhkOGI2MDg1NGY5
NjlmNjJjNjIyOGNmN2FmMjQwNzVlMzkuLjZiYTg1M2NkN2NmNDU3MWVkZDRmYTQzOGFhMjNiZDk1
MGMzMGU5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjItMDQtMjUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRqdXN0IHNvbWUgaW1h
Z2UgdHJhbnNjb2RpbmcgYmVoYXZpb3JzIHJlbGF0ZWQgdG8gIkNvcHkgQ3JvcHBlZCBJbWFnZSIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTc0OAor
ICAgICAgICByZGFyOi8vOTIyODcwMDAKKworICAgICAgICBSZXZpZXdlZCBieSBLYXRlIENoZW5l
eS4KKworICAgICAgICBSZWZhY3RvciBzb21lIGxvZ2ljIGZvciBleHRyYWN0aW5nICJjcm9wcGVk
IGltYWdlcyIgYW5kICJtYXJrdXAgaW1hZ2VzIi4gQ3VycmVudGx5LCB3ZSBhbHdheXMgdHJ5IHRv
IHByZXNlcnZlCisgICAgICAgIHRoZSBNSU1FIHR5cGUgb2YgdGhlIHNvdXJjZSBpbWFnZSBkYXRh
LCBidXQgdGhpcyBjYXVzZXMgdmFyaW91cyBpc3N1ZXMsIHN1Y2ggYXMgaW1hZ2VzIGxvc2luZyBh
bHBoYSBvciBmYWlsaW5nCisgICAgICAgIHRvIHRyYW5zY29kZSBhbHRvZ2V0aGVyLiBTZWUgYmVs
b3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0OiBJbWFnZUFuYWx5c2lzVGVzdHMu
UGVyZm9ybUltYWdlQW5hbHlzaXNNYXJrdXBXaXRoV2ViUEltYWdlcworCisgICAgICAgICogUGxh
dGZvcm0vY29jb2EvQ29jb2FJbWFnZS5oOgorICAgICAgICAqIFBsYXRmb3JtL2NvY29hL0NvY29h
SW1hZ2UubW06CisgICAgICAgIChXZWJLaXQ6OnRyYW5zY29kZVdpdGhQcmVmZXJyZWRNSU1FVHlw
ZSk6CisKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciB0aGUgYGZhbGxiYWNrVHlwZUlkZW50aWZp
ZXJgIGFyZ3VtZW50LCBub3cgdGhhdCBub3RoaW5nIGRlcGVuZHMgb24gaXQuCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9jb2NvYS9JbWFnZUFuYWx5c2lzVXRpbGl0aWVzLmg6CisgICAgICAgICogUGxh
dGZvcm0vY29jb2EvSW1hZ2VBbmFseXNpc1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6
aW1hZ2VEYXRhRm9yQ3JvcHBlZEltYWdlUmVzdWx0KToKKworICAgICAgICBBZGQgYSBuZXcgaGVs
cGVyIG1ldGhvZCB0byBjb252ZXJ0IGEgQ0dJbWFnZVJlZiB0byByYXcgaW1hZ2UgZGF0YSB0aGF0
J3MgYXBwcm9wcmlhdGUgZm9yIHRoZSBnaXZlbiBzb3VyY2UgTUlNRQorICAgICAgICB0eXBlLiBJ
ZiB0aGUgdHlwZSBiZWxvbmdzIG9uZSBvZiBhIHNob3J0IGxpc3Qgb2Ygc3VwcG9ydGVkIHR5cGVz
LCB3ZSB1c2UgaXQgZGlyZWN0bHk7IG90aGVyd2lzZSwgZmFsbCBiYWNrIHRvCisgICAgICAgICJp
bWFnZS9wbmciLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaW1hZ2VBbmFseXNpc01hcmt1cE1l
bnVdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpjb3B5
Q3JvcHBlZEltYWdlOnNvdXJjZU1JTUVUeXBlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKworICAgICAgICBEZXBsb3kgYGltYWdlRGF0YUZv
ckNyb3BwZWRJbWFnZVJlc3VsdGAgaW4gcGxhY2Ugb2YgZGlyZWN0bHkgY2FsbGluZyBgdHJhbnNj
b2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlYC4KKworICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0
TWVudVByb3h5TWFjOjphcHBseU1hcmt1cFRvQ29udHJvbGxlZEltYWdlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudUNvcHlDcm9wcGVkSW1hZ2UpOgorCiAyMDIyLTA0LTI1
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIGZpeCB0aGUgbWFjT1MgTW9udGVyZXkgYnVpbGQgYWZ0ZXIgcjI5MzM0MApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9Db2NvYUltYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL2NvY29hL0NvY29hSW1hZ2UuaAppbmRleCA5MWMwODhiZTdlMzdkMzRl
Mzk1YTljNGJlYWMyODY3ZjQ3ZTdkMDJjLi44YTg1YmExN2U4MjEwZTRiYWQ4ODM1NTMxNzAxZWU3
ZTE4Njg0YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0NvY29h
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0NvY29hSW1hZ2UuaApA
QCAtNDAsNiArNDAsNiBAQCBPQkpDX0NMQVNTIE5TRGF0YTsKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBSZXRhaW5QdHI8TlNEYXRhPiB0cmFuc2NvZGUoQ0dJbWFnZVJlZiwgQ0ZTdHJpbmdSZWYgdHlw
ZUlkZW50aWZpZXIpOwotc3RkOjpwYWlyPFJldGFpblB0cjxOU0RhdGE+LCBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+PiB0cmFuc2NvZGVXaXRoUHJlZmVycmVkTUlNRVR5cGUoQ0dJbWFnZVJlZiwgQ0ZT
dHJpbmdSZWYgcHJlZmVycmVkTUlNRVR5cGUsIENGU3RyaW5nUmVmIGZhbGxiYWNrVHlwZUlkZW50
aWZpZXIpOworc3RkOjpwYWlyPFJldGFpblB0cjxOU0RhdGE+LCBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+PiB0cmFuc2NvZGVXaXRoUHJlZmVycmVkTUlNRVR5cGUoQ0dJbWFnZVJlZiwgQ0ZTdHJpbmdS
ZWYgcHJlZmVycmVkTUlNRVR5cGUpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5tbSBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vY29jb2EvQ29jb2FJbWFnZS5tbQppbmRleCBlZDIzYjlhZTAyNDYzMmI4
YjA2MjU2NzY5M2UxMTEwZDRiZWU3OWYxLi4zZWI5YjFkYTJmZTg1MzE3MDdiMzNlNGI3MTk5MjMz
ZmJlNGNlMDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0NvY29h
SW1hZ2UubW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9Db2NvYUltYWdlLm1t
CkBAIC01MCwxOSArNTAsMjAgQEAgUmV0YWluUHRyPE5TRGF0YT4gdHJhbnNjb2RlKENHSW1hZ2VS
ZWYgaW1hZ2UsIENGU3RyaW5nUmVmIHR5cGVJZGVudGlmaWVyKQogICAgIHJldHVybiBkYXRhOwog
fQogCi1zdGQ6OnBhaXI8UmV0YWluUHRyPE5TRGF0YT4sIFJldGFpblB0cjxDRlN0cmluZ1JlZj4+
IHRyYW5zY29kZVdpdGhQcmVmZXJyZWRNSU1FVHlwZShDR0ltYWdlUmVmIGltYWdlLCBDRlN0cmlu
Z1JlZiBwcmVmZXJyZWRNSU1FVHlwZSwgQ0ZTdHJpbmdSZWYgZmFsbGJhY2tUeXBlSWRlbnRpZmll
cikKK3N0ZDo6cGFpcjxSZXRhaW5QdHI8TlNEYXRhPiwgUmV0YWluUHRyPENGU3RyaW5nUmVmPj4g
dHJhbnNjb2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlKENHSW1hZ2VSZWYgaW1hZ2UsIENGU3RyaW5n
UmVmIHByZWZlcnJlZE1JTUVUeXBlKQogewotICAgIGF1dG8gdGFyZ2V0VHlwZSA9IFJldGFpblB0
ciB7IGZhbGxiYWNrVHlwZUlkZW50aWZpZXIgfTsKLSAgICBpZiAoQ0ZTdHJpbmdHZXRMZW5ndGgo
cHJlZmVycmVkTUlNRVR5cGUpKSB7CisgICAgQVNTRVJUKENGU3RyaW5nR2V0TGVuZ3RoKHByZWZl
cnJlZE1JTUVUeXBlKSk7CiAjaWYgSEFWRShVTklGT1JNX1RZUEVfSURFTlRJRklFUlNfRlJBTUVX
T1JLKQotICAgICAgICBhdXRvIHByZWZlcnJlZFR5cGVJZGVudGlmaWVyID0gUmV0YWluUHRyIHsg
KF9fYnJpZGdlIENGU3RyaW5nUmVmKVtVVFR5cGUgdHlwZVdpdGhNSU1FVHlwZTooX19icmlkZ2Ug
TlNTdHJpbmcgKilwcmVmZXJyZWRNSU1FVHlwZSBjb25mb3JtaW5nVG9UeXBlOlVUVHlwZUltYWdl
XS5pZGVudGlmaWVyIH07CisgICAgYXV0byBwcmVmZXJyZWRUeXBlSWRlbnRpZmllciA9IFJldGFp
blB0ciB7IChfX2JyaWRnZSBDRlN0cmluZ1JlZilbVVRUeXBlIHR5cGVXaXRoTUlNRVR5cGU6KF9f
YnJpZGdlIE5TU3RyaW5nICopcHJlZmVycmVkTUlNRVR5cGUgY29uZm9ybWluZ1RvVHlwZTpVVFR5
cGVJbWFnZV0uaWRlbnRpZmllciB9OwogI2Vsc2UKLSAgICAgICAgYXV0byBwcmVmZXJyZWRUeXBl
SWRlbnRpZmllciA9IGFkb3B0Q0YoVVRUeXBlQ3JlYXRlUHJlZmVycmVkSWRlbnRpZmllckZvclRh
ZyhrVVRUYWdDbGFzc01JTUVUeXBlLCBwcmVmZXJyZWRNSU1FVHlwZSwga1VUVHlwZUltYWdlKSk7
CisgICAgYXV0byBwcmVmZXJyZWRUeXBlSWRlbnRpZmllciA9IGFkb3B0Q0YoVVRUeXBlQ3JlYXRl
UHJlZmVycmVkSWRlbnRpZmllckZvclRhZyhrVVRUYWdDbGFzc01JTUVUeXBlLCBwcmVmZXJyZWRN
SU1FVHlwZSwga1VUVHlwZUltYWdlKSk7CiAjZW5kaWYKLSAgICAgICAgaWYgKFdlYkNvcmU6Omlz
U3VwcG9ydGVkSW1hZ2VUeXBlKHByZWZlcnJlZFR5cGVJZGVudGlmaWVyLmdldCgpKSkKLSAgICAg
ICAgICAgIHRhcmdldFR5cGUgPSBXVEZNb3ZlKHByZWZlcnJlZFR5cGVJZGVudGlmaWVyKTsKKyAg
ICBpZiAoV2ViQ29yZTo6aXNTdXBwb3J0ZWRJbWFnZVR5cGUocHJlZmVycmVkVHlwZUlkZW50aWZp
ZXIuZ2V0KCkpKSB7CisgICAgICAgIGlmIChhdXRvIGRhdGEgPSB0cmFuc2NvZGUoaW1hZ2UsIHBy
ZWZlcnJlZFR5cGVJZGVudGlmaWVyLmdldCgpKTsgW2RhdGEgbGVuZ3RoXSkKKyAgICAgICAgICAg
IHJldHVybiB7IFdURk1vdmUoZGF0YSksIFdURk1vdmUocHJlZmVycmVkVHlwZUlkZW50aWZpZXIp
IH07CiAgICAgfQotICAgIHJldHVybiB7IHRyYW5zY29kZShpbWFnZSwgdGFyZ2V0VHlwZS5nZXQo
KSksIHRhcmdldFR5cGUgfTsKKworICAgIHJldHVybiB7IG5pbCwgbmlsIH07CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9JbWFnZUFuYWx5c2lzVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29h
L0ltYWdlQW5hbHlzaXNVdGlsaXRpZXMuaAppbmRleCA3OTVmYzJjYWJmZmE0MGI2NTAyZTRkMTkx
NGJhMThmMDlmMWIzM2ZkLi44ZTU3Y2U0MWIwOTI3YzU1MzhiZTBiMzYyYTYwNDgxMjk0ZDI2OTMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0ltYWdlQW5hbHlzaXNV
dGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL0ltYWdlQW5hbHlz
aXNVdGlsaXRpZXMuaApAQCAtMzEsNiArMzEsOCBAQAogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKK09CSkNfQ0xBU1MgTlNEYXRh
OworCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKIHVzaW5nIENvY29h
SW1hZ2VBbmFseXNpcyA9IFZLQ0ltYWdlQW5hbHlzaXM7CiB1c2luZyBDb2NvYUltYWdlQW5hbHl6
ZXIgPSBWS0NJbWFnZUFuYWx5emVyOwpAQCAtNjEsNiArNjMsOCBAQCBSZXRhaW5QdHI8Q29jb2FJ
bWFnZUFuYWx5emVyUmVxdWVzdD4gY3JlYXRlSW1hZ2VBbmFseXplclJlcXVlc3QoQ0dJbWFnZVJl
ZiwgVktBbgogdm9pZCByZXF1ZXN0SW1hZ2VBbmFseXNpc1dpdGhJZGVudGlmaWVyKENvY29hSW1h
Z2VBbmFseXplciAqLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIENHSW1hZ2VSZWYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiYpPiYmKTsK
IHZvaWQgcmVxdWVzdEltYWdlQW5hbHlzaXNNYXJrdXAoQ0dJbWFnZVJlZiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChDR0ltYWdlUmVmLCBDR1JlY3QpPiYmKTsKIAorc3RkOjpwYWlyPFJldGFpblB0
cjxOU0RhdGE+LCBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+PiBpbWFnZURhdGFGb3JDcm9wcGVkSW1h
Z2VSZXN1bHQoQ0dJbWFnZVJlZiwgY29uc3QgU3RyaW5nJiBzb3VyY2VNSU1FVHlwZSk7CisKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogdXNpbmcgUGxhdGZvcm1JbWFnZUFuYWx5c2lzT2JqZWN0
ID0gVktDSW1hZ2VBbmFseXNpc0ludGVyYWN0aW9uOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvSW1hZ2VBbmFseXNpc1V0aWxpdGllcy5tbSBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvSW1hZ2VBbmFseXNpc1V0aWxpdGllcy5tbQppbmRleCA3
ZDFhNWM2ZDk1YzFmNjNiZDMwNDgwMGE5NWViZjQxZmQ4ZTU4NTc2Li5iZTM2NjdlMGE0NzNhYWU0
MWIwYzhlYWUxZWJiNmQyNmE0MTIwMWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL2NvY29hL0ltYWdlQW5hbHlzaXNVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9jb2NvYS9JbWFnZUFuYWx5c2lzVXRpbGl0aWVzLm1tCkBAIC0zMyw4ICszMywxMyBA
QAogI2ltcG9ydCAiVHJhbnNhY3Rpb25JRC5oIgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVjb2du
aXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvRmVhdHVyZUZsYWdzU1BJLmg+
CisjaW1wb3J0IDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL1dvcmtRdWV1
ZS5oPgogCisjaWYgSEFWRShVTklGT1JNX1RZUEVfSURFTlRJRklFUlNfRlJBTUVXT1JLKQorI2lt
cG9ydCA8VW5pZm9ybVR5cGVJZGVudGlmaWVycy9Vbmlmb3JtVHlwZUlkZW50aWZpZXJzLmg+Cisj
ZW5kaWYKKwogI2ltcG9ydCA8cGFsL2NvY29hL1Zpc2lvbktpdENvcmVTb2Z0TGluay5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE3NCw2ICsxNzksMjcgQEAgYm9vbCBpc0xpdmVUZXh0QXZh
aWxhYmxlQW5kRW5hYmxlZCgpCiAgICAgcmV0dXJuIFBBTDo6aXNWaXNpb25LaXRDb3JlRnJhbWV3
b3JrQXZhaWxhYmxlKCk7CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1F
TlRTKQorCitzdGQ6OnBhaXI8UmV0YWluUHRyPE5TRGF0YT4sIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4+IGltYWdlRGF0YUZvckNyb3BwZWRJbWFnZVJlc3VsdChDR0ltYWdlUmVmIGltYWdlLCBjb25z
dCBTdHJpbmcmIHNvdXJjZU1JTUVUeXBlKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCBh
bGxvd2VkTUlNRVR5cGVzRm9yVHJhbnNjb2RpbmcgPSBbXSB7CisgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgc3RkOjphcnJheSB0eXBlcyB7ICJpbWFnZS9wbmciX3MsICJpbWFnZS90aWZmIl9zLCAi
aW1hZ2UvZ2lmIl9zLCAiaW1hZ2UvYm1wIl9zIH07CisgICAgICAgIE1lbW9yeUNvbXBhY3RMb29r
dXBPbmx5Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+IHNldDsKKyAgICAgICAgc2V0LnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoc3RkOjpzaXplKHR5cGVzKSk7CisgICAgICAgIGZvciAoYXV0byB0eXBl
IDogdHlwZXMpCisgICAgICAgICAgICBzZXQuYWRkKHR5cGUpOworICAgICAgICByZXR1cm4gc2V0
OworICAgIH0oKTsKKworICAgIGlmICghc291cmNlTUlNRVR5cGUuaXNFbXB0eSgpICYmIGFsbG93
ZWRNSU1FVHlwZXNGb3JUcmFuc2NvZGluZy0+Y29udGFpbnMoc291cmNlTUlNRVR5cGUpKQorICAg
ICAgICByZXR1cm4gdHJhbnNjb2RlV2l0aFByZWZlcnJlZE1JTUVUeXBlKGltYWdlLCBzb3VyY2VN
SU1FVHlwZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKKworICAgIHJldHVybiB0cmFuc2NvZGVX
aXRoUHJlZmVycmVkTUlNRVR5cGUoaW1hZ2UsIENGU1RSKCJpbWFnZS9wbmciKSk7Cit9CisKKyNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCmluZGV4IDhlNWVhYWM1MjhmMTk1MTM1OTc2NzE2ZGI5ODI2MTdjNTYyNmIxMTQuLmZjMjli
ZmIwYWNiOGE1MjNmN2JiYzhkMGQ2YzA4N2E0MWM0NDE2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAt
NDc1OCw3ICs0NzU4LDcgQEAgLSAoVUlNZW51ICopaW1hZ2VBbmFseXNpc01hcmt1cE1lbnUKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIFtlbGVtZW50Q29udGV4dCwgaW1hZ2Us
IHByZWZlcnJlZE1JTUVUeXBlXSA9ICp2aWV3LT5faW1hZ2VBbmFseXNpc01hcmt1cERhdGE7Ci0g
ICAgICAgIGlmIChhdXRvIFtkYXRhLCB0eXBlXSA9IFdlYktpdDo6dHJhbnNjb2RlV2l0aFByZWZl
cnJlZE1JTUVUeXBlKGltYWdlLmdldCgpLCBwcmVmZXJyZWRNSU1FVHlwZS5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpLCAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpVVRUeXBlVElGRi5pZGVudGlmaWVyKTsg
ZGF0YSkKKyAgICAgICAgaWYgKGF1dG8gW2RhdGEsIHR5cGVdID0gV2ViS2l0OjppbWFnZURhdGFG
b3JDcm9wcGVkSW1hZ2VSZXN1bHQoaW1hZ2UuZ2V0KCksIHByZWZlcnJlZE1JTUVUeXBlLmNyZWF0
ZUNGU3RyaW5nKCkuZ2V0KCkpOyBkYXRhKQogICAgICAgICAgICAgdmlldy0+X3BhZ2UtPnJlcGxh
Y2VJbWFnZVdpdGhNYXJrdXBSZXN1bHRzKGVsZW1lbnRDb250ZXh0LCB7IFN0cmluZyB7IHR5cGUu
Z2V0KCkgfSB9LCB7IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihbZGF0YSBieXRlc10pLCBb
ZGF0YSBsZW5ndGhdIH0pOwogICAgIH1dOwogfQpAQCAtMTEwMjcsMTEgKzExMDI3LDE0IEBAIC0g
KHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Np
c3RhbnQgY29weUNyb3BwZWRJbWFnCiB7CiAgICAgYXV0byBjaGFuZ2VDb3VudCA9IFVJUGFzdGVi
b2FyZC5nZW5lcmFsUGFzdGVib2FyZC5jaGFuZ2VDb3VudDsKICAgICBXZWJLaXQ6OnJlcXVlc3RJ
bWFnZUFuYWx5c2lzTWFya3VwKGltYWdlLkNHSW1hZ2UsIFtjaGFuZ2VDb3VudCwgd2Vha1NlbGYg
PSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgb3JpZ2luYWxJbWFnZSA9IFJldGFp
blB0ciB7IGltYWdlIH0sIHNvdXJjZU1JTUVUeXBlID0gUmV0YWluUHRyIHsgc291cmNlTUlNRVR5
cGUgfV0oQ0dJbWFnZVJlZiByZXN1bHQsIENHUmVjdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICgh
cmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9
IHdlYWtTZWxmLmdldCgpOwogICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgYXV0byBbZGF0YSwgdHlwZV0gPSBXZWJLaXQ6OnRyYW5zY29kZVdp
dGhQcmVmZXJyZWRNSU1FVHlwZShyZXN1bHQgPzogW29yaWdpbmFsSW1hZ2UgQ0dJbWFnZV0sIChf
X2JyaWRnZSBDRlN0cmluZ1JlZilzb3VyY2VNSU1FVHlwZS5nZXQoKSwgKF9fYnJpZGdlIENGU3Ry
aW5nUmVmKVVUVHlwZVRJRkYuaWRlbnRpZmllcik7CisgICAgICAgIGF1dG8gW2RhdGEsIHR5cGVd
ID0gV2ViS2l0OjppbWFnZURhdGFGb3JDcm9wcGVkSW1hZ2VSZXN1bHQocmVzdWx0LCAoX19icmlk
Z2UgQ0ZTdHJpbmdSZWYpc291cmNlTUlNRVR5cGUuZ2V0KCkpOwogICAgICAgICBpZiAoIWRhdGEp
CiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KaW5kZXggMTE4NzcxM2IyNmUxNTMxOWI4
MzI2NjAyMDJiMWMxN2I2ZTA1ZmFkMi4uZTg4MzllYTM5ODQzMDcwZWFmNDFlZGVmYmJhN2JkZGI2
NTc4MjllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbnRl
eHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNZW51UHJveHlNYWMubW0KQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIFdlYkNvbnRleHRN
ZW51UHJveHlNYWM6OmFwcGx5TWFya3VwVG9Db250cm9sbGVkSW1hZ2UoKQogICAgICAgICBpZiAo
IXByb3RlY3RlZFBhZ2UgfHwgIXJlc3VsdCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBhdXRvIFtkYXRhLCB0eXBlXSA9IHRyYW5zY29kZVdpdGhQcmVmZXJyZWRNSU1FVHlwZShyZXN1
bHQsIHByZWZlcnJlZE1JTUVUeXBlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIChfX2JyaWRnZSBD
RlN0cmluZ1JlZilVVFR5cGVUSUZGLmlkZW50aWZpZXIpOworICAgICAgICBhdXRvIFtkYXRhLCB0
eXBlXSA9IGltYWdlRGF0YUZvckNyb3BwZWRJbWFnZVJlc3VsdChyZXN1bHQsIHByZWZlcnJlZE1J
TUVUeXBlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwogICAgICAgICBpZiAoIWRhdGEpCiAgICAg
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XZWJQYWdlUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFn
ZVByb3h5TWFjLm1tCmluZGV4IGY0MjFkOTc2OTA1Mzc1MDkyMDA2NmU0YTIyOTg1ZjEzNGRlNzFh
ZWIuLmM2ZGI2MGU3M2VhMzAwNGM2ZWYwNjI5ZDA5MzU4OWE4ODQyOTQxMjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtNzkxLDcgKzc5
MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDb250ZXh0TWVudUNvcHlDcm9wcGVkSW1h
Z2UoY29uc3QgU3RyaW5nJiBwcmVmZXJyZWRNSU1FCiAgICAgaWYgKCFtX2Nyb3BwZWRJbWFnZUZv
ckNvbnRleHRNZW51KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIFtkYXRhLCB0eXBlXSA9
IHRyYW5zY29kZVdpdGhQcmVmZXJyZWRNSU1FVHlwZShtX2Nyb3BwZWRJbWFnZUZvckNvbnRleHRN
ZW51LmdldCgpLCBwcmVmZXJyZWRNSU1FVHlwZS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCAoX19i
cmlkZ2UgQ0ZTdHJpbmdSZWYpVVRUeXBlVElGRi5pZGVudGlmaWVyKTsKKyAgICBhdXRvIFtkYXRh
LCB0eXBlXSA9IGltYWdlRGF0YUZvckNyb3BwZWRJbWFnZVJlc3VsdChtX2Nyb3BwZWRJbWFnZUZv
ckNvbnRleHRNZW51LmdldCgpLCBwcmVmZXJyZWRNSU1FVHlwZS5jcmVhdGVDRlN0cmluZygpLmdl
dCgpKTsKICAgICBpZiAoIWRhdGEpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZlMGFjZjI0ZWI0NDU0MTQxNjU4
NmIxZWI5NzVhYThlMTU0MDlmODYuLjA3OWMyNzQ5NTNkN2RhNWQ3ZmRhY2EzNmM1MzU3ZmU0ODlh
MDQzMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAyMi0wNC0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGp1c3Qgc29tZSBpbWFnZSB0cmFuc2NvZGluZyBiZWhh
dmlvcnMgcmVsYXRlZCB0byAiQ29weSBDcm9wcGVkIEltYWdlIgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NzQ4CisgICAgICAgIHJkYXI6Ly85MjI4
NzAwMAorCisgICAgICAgIFJldmlld2VkIGJ5IEthdGUgQ2hlbmV5LgorCisgICAgICAgIEFkZCBh
biBBUEkgdGVzdCB0byBleGVyY2lzZSB0aGUgY2hhbmdlLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbWFnZUFuYWx5c2lzVGVzdHMubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpydW5NYXJrdXBUZXN0KToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
d2VicC1pbWFnZS5odG1sOiBBZGRlZC4KKwogMjAyMi0wNC0yNSAgSm9uYXRoYW4gQmVkYXJkICA8
amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW2J1aWxkLndlYmtpdC5vcmddIFVzZSBHaXRI
dWIgY2hlY2tvdXRzIChGb2xsb3ctdXApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ3NWZj
MTgyZmZmMjc5N2Y0ODk1NDM2Njc0NTIxMWIxYzI5NDM2MWQuLjc1NzdmNzZmZWU2YzdkMjc5MGJk
OTNkMmZkOTc3OGNjODFkODdhMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDcyLDYg
KzEwNzIsOCBAQAogCQlGNDU4Mjg2MDI3NzUwNTI1MDAzRUNDRjMgLyogbW9kYWwtY29udGFpbmVy
LWN1c3RvbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0NTgyODVGMjc3NTA1MUIwMDNFQ0NGMyAvKiBtb2RhbC1jb250YWluZXItY3Vz
dG9tLmh0bWwgKi87IH07CiAJCUY0NUI2M0ZCMUYxOTdGNEEwMDlEMzhCOSAvKiBpbWFnZS1tYXAu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDVCNjNGQTFGMTk3RjMzMDA5RDM4QjkgLyogaW1hZ2UtbWFwLmh0bWwgKi87IH07CiAJCUY0
NUI2M0ZFMUYxOUQ0MTAwMDlEMzhCOSAvKiBBY3Rpb25TaGVldFRlc3RzLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1QjYzRkMxRjE5RDQxMDAwOUQz
OEI5IC8qIEFjdGlvblNoZWV0VGVzdHMubW0gKi87IH07CisJCUY0NUM2NDAwMjgxNzhBRDMwMDkw
REZBQiAvKiBncmVlbi00MDB4NDAwLndlYnAgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1QzYzRkYyODE3OEFDNDAwOTBERkFCIC8qIGdyZWVu
LTQwMHg0MDAud2VicCAqLzsgfTsKKwkJRjQ1QzY0MDEyODE3OEFENzAwOTBERkFCIC8qIHdlYnAt
aW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDVDNjNGRTI4MTc4QTUzMDA5MERGQUIgLyogd2VicC1pbWFnZS5odG1sICovOyB9
OwogCQlGNDVEMzg5MTIxNUE3QjRCMDAyQTI5NzkgLyogVGVzdEluc3BlY3RvckJhci5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NUQzODkwMjE1QTdC
NEIwMDJBMjk3OSAvKiBUZXN0SW5zcGVjdG9yQmFyLm1tICovOyB9OwogCQlGNDVFMTU3MzIxMTJD
RTI5MDAzMDdFODIgLyogS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1RTE1NzIyMTEyQ0UyOTAwMzA3RTgyIC8q
IEtleWJvYXJkSW5wdXRUZXN0c0lPUy5tbSAqLzsgfTsKIAkJRjQ1RTE1NzYyMTEyQ0U2MjAwMzA3
RTgyIC8qIFRlc3RJbnB1dERlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ1RTE1NzUyMTEyQ0U2MjAwMzA3RTgyIC8qIFRlc3RJbnB1dERl
bGVnYXRlLm1tICovOyB9OwpAQCAtMTM5Nyw2ICsxMzk5LDcgQEAKIAkJCQkwNzQ5OTQ0MjFFQTUw
MzRCMDAwREE0NUUgLyogZ2V0VXNlck1lZGlhQXVkaW9WaWRlb0NhcHR1cmUuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQkwNzQ5OTQ1MjFFQTUwMzRCMDAwREE0NkUgLyogZ2V0VXNlck1l
ZGlhUGVybWlzc2lvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NkEwOTVCMUVE
OEE2RTYwMEQ0QUE1NSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKKwkJCQlGNDVDNjQwMDI4MTc4QUQzMDA5MERGQUIgLyogZ3JlZW4tNDAweDQwMC53ZWJw
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3MzI1NUE1MjIxMzlCQzcwMDM5NkFFOCAvKiBo
ZWxsb3dvcmxkLndlYmFyY2hpdmUgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOUI0RjhGQTcx
NTlENTJERDAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJOUIyNkZDQ0ExNTlEMTZERTAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29s
bGVjdGlvbk5hbWVkSXRlbS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTY2OSw2ICsx
NjcyLDcgQEAKIAkJCQkxQzJCODE4NjFDODkyNTlEMDBBNTUyOUYgLyogd2ViZm9udC5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTMxRTlCREEzMjQ3RjU3MjkwMDJFNTFBMiAvKiB3ZWJn
bC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTdBMzNGRjM0MjdDODMxN0QwMEQ3RTAz
RSAvKiB3ZWJraXQtbG9nby5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjQ1QzY0MDEy
ODE3OEFENzAwOTBERkFCIC8qIHdlYnAtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1MTcxNEVCNDFDRjhDNzhDMDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVw
LTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTcxNEVCNTFDRjhDNzhDMDA0NzIz
QzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQk1MzY3NzAzNjFDQzgxQjYxMDBENDI1QjEgLyogV2ViU2NyaXB0T2JqZWN0RGVzY3Jp
cHRpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTMwOTcsNiArMzEwMSw4IEBACiAJ
CUY0NTgyODVGMjc3NTA1MUIwMDNFQ0NGMyAvKiBtb2RhbC1jb250YWluZXItY3VzdG9tLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibW9kYWwtY29udGFpbmVyLWN1c3RvbS5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1QjYzRkExRjE5N0YzMzAwOUQzOEI5
IC8qIGltYWdlLW1hcC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImltYWdlLW1hcC5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1QjYzRkMxRjE5RDQxMDAwOUQzOEI5IC8qIEFjdGlvblNo
ZWV0VGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY3Rpb25TaGVldFRlc3RzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDVDNjNGRTI4MTc4QTUzMDA5MERGQUIgLyog
d2VicC1pbWFnZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYnAtaW1hZ2UuaHRtbCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY0NUM2M0ZGMjgxNzhBQzQwMDkwREZBQiAvKiBncmVlbi00MDB4
NDAwLndlYnAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBmaWxlOyBwYXRoID0gImdyZWVuLTQwMHg0MDAud2VicCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0NUQzODhGMjE1QTdCNEIwMDJBMjk3OSAvKiBUZXN0SW5zcGVjdG9yQmFyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRlc3RJbnNwZWN0b3JCYXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQ1RDM4OTAyMTVBN0I0QjAwMkEyOTc5IC8qIFRlc3RJbnNwZWN0b3JCYXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0SW5zcGVjdG9yQmFyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDVFMTU3MjIxMTJDRTI5MDAzMDdFODIgLyogS2V5Ym9hcmRJbnB1
dFRlc3RzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gS2V5Ym9hcmRJbnB1dFRlc3RzSU9T
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDE5NSw2ICs0MjAxLDcgQEAKIAkJ
CQkwN0UxRjZBMTFGRkM0NEY5MDA5NkM3RUMgLyogZ2V0RGlzcGxheU1lZGlhLmh0bWwgKi8sCiAJ
CQkJNDY3QzU2NTEyMUI1RUNERjAwNTc1MTZEIC8qIEdldFNlc3Npb25Db29raWUuaHRtbCAqLywK
IAkJCQlGNDdEMzBFRDFFRDI4QTZDMDAwNDgyRTEgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwg
Ki8sCisJCQkJRjQ1QzYzRkYyODE3OEFDNDAwOTBERkFCIC8qIGdyZWVuLTQwMHg0MDAud2VicCAq
LywKIAkJCQlFQjIzMEQzRDI0NUU3MjJFMDBDNjZBRDEgLyogSURCQ2hlY2twb2ludFdBTC5odG1s
ICovLAogCQkJCTUxMDQ3Nzc2MUQyOThFNTcwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5o
dG1sICovLAogCQkJCTUxMDQ3NzZGMUQyOThEODUwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVy
eS5zcWxpdGUzICovLApAQCAtNDM3MCw2ICs0Mzc3LDcgQEAKIAkJCQk1NzQyMTc4RDI0MDBEMjZD
MDAyQjMwM0QgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS5odG1sICov
LAogCQkJCTQ2QTQ0QTUzMjVBNzgyREQwMEY2MUUxNiAvKiB3ZWJhdWRpby1jcmVhdGVNZWRpYUVs
ZW1lbnRTb3VyY2UuaHRtbCAqLywKIAkJCQk3QTMzRkYzMjI3QzgzMTREMDBEN0UwM0UgLyogd2Vi
a2l0LWxvZ28ucGRmICovLAorCQkJCUY0NUM2M0ZFMjgxNzhBNTMwMDkwREZBQiAvKiB3ZWJwLWlt
YWdlLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjIxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NL
aWxsSURCQ2xlYW51cC0xLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjMxQ0Y4Qzc2MTAwNDcyM0M0IC8q
IFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0bWwgKi8sCiAJCQkJNTEyMEM4M0IxRTY3NEUz
NTAwMjVCMjUwIC8qIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5odG1sICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbWFnZUFuYWx5c2lz
VGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ltYWdlQW5h
bHlzaXNUZXN0cy5tbQppbmRleCBiZWQzZTA1ZjFiNTkyOWVlOWVkZjhjMmFkYTRkNGZhMmU0Y2Vl
MzNjLi5iMDBiNjYzZjk0NWUxYzcyYTFjYmU4ZWY2NTVmNGQxODUzOTBjODE3IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ltYWdlQW5hbHlzaXNUZXN0
cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ltYWdlQW5h
bHlzaXNUZXN0cy5tbQpAQCAtMzcyLDcgKzM3Miw3IEBAIHN0YXRpYyB2b2lkIGludm9rZUltYWdl
TWFya3VwQWN0aW9uKFRlc3RXS1dlYlZpZXcgKndlYlZpZXcpCiAgICAgW3dlYlZpZXcgd2FpdEZv
ck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwogfQogCi1URVNUKEltYWdlQW5hbHlzaXNUZXN0cywg
UGVyZm9ybUltYWdlQW5hbHlzaXNNYXJrdXApCitzdGF0aWMgdm9pZCBydW5NYXJrdXBUZXN0KE5T
U3RyaW5nICp0ZXN0UGFnZSwgTlNTdHJpbmcgKnNjcmlwdFRvU2VsZWN0VGV4dCwgRnVuY3Rpb248
dm9pZChUZXN0V0tXZWJWaWV3ICosIE5TU3RyaW5nICopPiYmIGNoZWNrV2ViVmlldykKIHsKICAg
ICBhdXRvIGljb25QYXRoID0gW05TQnVuZGxlLm1haW5CdW5kbGUgcGF0aEZvclJlc291cmNlOkAi
aWNvbiIgb2ZUeXBlOkAicG5nIiBpbkRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAgICAgUmV0YWluUHRyIGljb25JbWFnZSA9IFtVSUltYWdlIGltYWdlV2l0aENvbnRlbnRz
T2ZGaWxlOmljb25QYXRoXTsKQEAgLTM4NiwyMSArMzg2LDM2IEBAIFRFU1QoSW1hZ2VBbmFseXNp
c1Rlc3RzLCBQZXJmb3JtSW1hZ2VBbmFseXNpc01hcmt1cCkKIAogICAgIFt3ZWJWaWV3IF9zZXRF
ZGl0YWJsZTpZRVNdOwogICAgIFt3ZWJWaWV3IF9zZXRJbnB1dERlbGVnYXRlOmlucHV0RGVsZWdh
dGUuZ2V0KCldOwotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpA
Im11bHRpcGxlLWltYWdlcyJdOwotICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50LmJvZHksIDAs
IGRvY3VtZW50LmltYWdlc1swXSwgMSkiXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZFRlc3RQYWdlTmFtZWQ6dGVzdFBhZ2VdOworICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6c2NyaXB0VG9TZWxlY3RUZXh0XTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4
dFByZXNlbnRhdGlvblVwZGF0ZV07CiAKICAgICBOU1N0cmluZyAqcHJldmlvdXNTZWxlY3RlZFRl
eHQgPSBbd2ViVmlldyBzZWxlY3RlZFRleHRdOwogICAgIGludm9rZUltYWdlTWFya3VwQWN0aW9u
KHdlYlZpZXcuZ2V0KCkpOworICAgIGNoZWNrV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBwcmV2aW91
c1NlbGVjdGVkVGV4dCk7Cit9CiAKLSAgICBFWFBFQ1RfV0tfU1RSRVEocHJldmlvdXNTZWxlY3Rl
ZFRleHQsIFt3ZWJWaWV3IHNlbGVjdGVkVGV4dF0pOwotICAgIFV0aWw6OndhaXRGb3JDb25kaXRp
b25XaXRoTG9nZ2luZyhbJl0gewotICAgICAgICByZXR1cm4gW1t3ZWJWaWV3IG9iamVjdEJ5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5pbWFnZXNbMF0uZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGgiXSBpbnRWYWx1ZV0gPT0gMjE1OwotICAgIH0sIDMsIEAiRXhwZWN0ZWQgYm91
bmRpbmcgY2xpZW50IHJlY3QgdG8gYmVjb21lIDIxNS4iKTsKK1RFU1QoSW1hZ2VBbmFseXNpc1Rl
c3RzLCBQZXJmb3JtSW1hZ2VBbmFseXNpc01hcmt1cCkKK3sKKyAgICBydW5NYXJrdXBUZXN0KEAi
bXVsdGlwbGUtaW1hZ2VzIiwgQCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRvY3Vt
ZW50LmJvZHksIDAsIGRvY3VtZW50LmltYWdlc1swXSwgMSkiLCBbXShUZXN0V0tXZWJWaWV3ICp3
ZWJWaWV3LCBOU1N0cmluZyAqcHJldmlvdXNTZWxlY3RlZFRleHQpIHsKKyAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKHByZXZpb3VzU2VsZWN0ZWRUZXh0LCB3ZWJWaWV3LnNlbGVjdGVkVGV4dCk7Cisg
ICAgICAgIFV0aWw6OndhaXRGb3JDb25kaXRpb25XaXRoTG9nZ2luZyhbJl0geworICAgICAgICAg
ICAgcmV0dXJuIFtbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1l
bnQuaW1hZ2VzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIl0gaW50VmFsdWVdID09
IDIxNTsKKyAgICAgICAgfSwgMywgQCJFeHBlY3RlZCBib3VuZGluZyBjbGllbnQgcmVjdCB0byBi
ZWNvbWUgMjE1LiIpOworCisgICAgICAgIE5TU3RyaW5nICp1bmRvVGl0bGUgPSB3ZWJWaWV3LnVu
ZG9NYW5hZ2VyLnVuZG9NZW51SXRlbVRpdGxlOworICAgICAgICBFWFBFQ1RfR1QodW5kb1RpdGxl
Lmxlbmd0aCwgMFUpOworICAgICAgICBFWFBFQ1RfRkFMU0UoW3VuZG9UaXRsZSBjb250YWluc1N0
cmluZzpAIlBhc3RlIl0pOworICAgIH0pOworfQogCi0gICAgTlNTdHJpbmcgKnVuZG9UaXRsZSA9
IFt3ZWJWaWV3IHVuZG9NYW5hZ2VyXS51bmRvTWVudUl0ZW1UaXRsZTsKLSAgICBFWFBFQ1RfR1Qo
dW5kb1RpdGxlLmxlbmd0aCwgMFUpOwotICAgIEVYUEVDVF9GQUxTRShbdW5kb1RpdGxlIGNvbnRh
aW5zU3RyaW5nOkAiUGFzdGUiXSk7CitURVNUKEltYWdlQW5hbHlzaXNUZXN0cywgUGVyZm9ybUlt
YWdlQW5hbHlzaXNNYXJrdXBXaXRoV2ViUEltYWdlcykKK3sKKyAgICBydW5NYXJrdXBUZXN0KEAi
d2VicC1pbWFnZSIsIEAiZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1lbnQu
Ym9keSkiLCBbXShUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3LCBOU1N0cmluZyAqKSB7CisgICAgICAg
IFV0aWw6OndhaXRGb3JDb25kaXRpb25XaXRoTG9nZ2luZyhbJl0geworICAgICAgICAgICAgcmV0
dXJuIFtbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuaW1h
Z2VzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIl0gaW50VmFsdWVdID09IDIxNTsK
KyAgICAgICAgfSwgMywgQCJFeHBlY3RlZCBib3VuZGluZyBjbGllbnQgcmVjdCB0byBiZWNvbWUg
MjE1LiIpOworICAgIH0pOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VO
SEFOQ0VNRU5UUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvZ3JlZW4tNDAweDQwMC53ZWJwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9ncmVlbi00MDB4NDAwLndlYnAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzg2ZjFiMDcyMDVlYjBhM2FjNGEzOTk0NThlZGI0OGQ2MjQ0N2QxNApHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMzY4CnpjbVdJWWJhVHNLV01CdylicVdYenV1ekJydklBNVo8fXp3Y1Y0
VDJjN3BPN0dVM3Q7TWckZilEMXplbiZjQE43SQp6PD9nVVFVfDxsdyFNXlhOQzRjUnZCRHZvd1Bp
KClQSlc+NjJAYFVmVilmTH13XkstdFJHcEJ0N053K2RFe1FHfCgKY15aKTxQRWJDOTBYVVlIbkRe
YnM1LXpJLWdmQl91PDBOMTZyYl5yaFgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2VicC1pbWFnZS5odG1s
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWJwLWltYWdlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2EwY2ZlNTMxOWMwYTQ3MTViYTkzZGNjZGNlYmE0MTcwOGU5MGJkNgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2Vi
cC1pbWFnZS5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD48bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0naW5pdGlhbC1zY2FsZT0xJz48
L2hlYWQ+CisgICAgPGJvZHkgc3R5bGU9J21hcmdpbjogMHB4Oyc+CisgICAgICAgIDxwPkltYWdl
PC9wPgorICAgICAgICA8aW1nIHNyYz0iZ3JlZW4tNDAweDQwMC53ZWJwIj48L2ltZz4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>