<?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>229557</bug_id>
          
          <creation_ts>2021-08-26 08:13:10 -0700</creation_ts>
          <short_desc>[GTK] EventSenderProxyGtk does not implement touch event synthesis</short_desc>
          <delta_ts>2021-09-13 00:57:55 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229998</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>hi</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1787596</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-08-26 08:13:10 -0700</bug_when>
    <thetext>As the bug title says.

This and the combination of the wheel-event synthesis API not letting you specify if precise scroll events are present makes it impossible to test the behaviour of precise (e.g. touch/touchpad) scrolling on GTK. While the easiest fix for that would be to add an extra prototype for specifying hasPreciseScrollDeltas to the wheel-event synthesis API, I think implementing touch event synthesis is the nicer and more flexible way of doing this, given that API already exists, is implemented on basically every other platform and is currently just stubbed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790723</commentid>
    <comment_count>1</comment_count>
      <attachid>437421</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-06 09:31:22 -0700</bug_when>
    <thetext>Created attachment 437421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790724</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-06 09:33:45 -0700</bug_when>
    <thetext>I&apos;ve not re-baselined/enabled tests in this patch yet, I&apos;m hoping EWS makes it easier for me to determine the list of tests that will need changing/re-enabling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790815</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-09-06 16:26:50 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790978</commentid>
    <comment_count>4</comment_count>
      <attachid>437495</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-07 06:38:07 -0700</bug_when>
    <thetext>Created attachment 437495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792872</commentid>
    <comment_count>5</comment_count>
      <attachid>437495</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-13 00:57:55 -0700</bug_when>
    <thetext>Comment on attachment 437495
Patch

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

&gt; LayoutTests/platform/gtk/TestExpectations:-590
&gt; -# These tests require touch support
&gt; -fast/events/touch [ Skip ]
&gt; -imported/w3c/web-platform-tests/touch-events [ Skip ]

I&apos;m surprised we can unskip these, we enable touch support at runtime depending on the hardware, or did that change?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437421</attachid>
            <date>2021-09-06 09:31:22 -0700</date>
            <delta_ts>2021-09-07 06:37:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229557-20210906173120.patch</filename>
            <type>text/plain</type>
            <size>17956</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwOTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0MjhhN2FmMGY1NTY1YmFj
MjkxNmMxYzdmOTZiMGE4ZTM2YjAxMWQuLjk4OWEwMTk4N2Y2ZDk0ZWYxODNlMzI1MjA2MWM3YzBk
MGVmNDE2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDktMDYgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEV2ZW50U2VuZGVyUHJveHlH
dGsgZG9lcyBub3QgaW1wbGVtZW50IHRvdWNoIGV2ZW50IHN5bnRoZXNpcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRvdWNoIGV2ZW50
IHN5bnRoZXNpcyBpbiBHVEsgV2ViS2l0V2ViVmlld0Jhc2UuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogU2hhcmVkL05hdGl2
ZVdlYlRvdWNoRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNoRXZl
bnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVX
ZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
QmFzZS5jcHA6CisgICAgICAgICh0b1dlYktpdE1vZGlmaWVycyk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3QmFzZUFkZFN5bnRoZXNpemVkVG91Y2hQb2ludCk6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3QmFzZVVwZGF0ZVN5bnRoZXNpemVkVG91Y2hQb2ludCk6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3QmFzZVJlbGVhc2VTeW50aGVzaXplZFRvdWNoUG9pbnQpOgorICAgICAgICAod2Via2l0V2Vi
Vmlld0Jhc2VDYW5jZWxTeW50aGVzaXplZFRvdWNoUG9pbnQpOgorICAgICAgICAod2Via2l0V2Vi
Vmlld0Jhc2VDbGVhclN5bnRoZXNpemVkVG91Y2hQb2ludHMpOgorICAgICAgICAoZ2V0VXBkYXRl
ZFN5bnRoVG91Y2hFdmVudHMpOgorICAgICAgICAocmVtb3ZlVXBkYXRlZFN5bnRoVG91Y2hFdmVu
dHMpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplVG91Y2hFdmVudCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5hbC5oOgor
CiAyMDIxLTA4LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyODA4NzUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCBkNzMzMzAxNmU4NDkxYjQyODcxNzhh
MjM3NTY5ZmRlOWQ4OWEzYTAwLi4xODM4YTU4NWIwODQxMDEzNTc0ZmU1OGYxZjkxZTM2ZGU3M2Ni
NDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCkBAIC01
Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBOYXRpdmVXZWJUb3VjaEV2ZW50KGNv
bnN0IF9VSVdlYlRvdWNoRXZlbnQqLCBVSUtleU1vZGlmaWVyRmxhZ3MpOwogI2VuZGlmCiAjZWxp
ZiBQTEFURk9STShHVEspCisgICAgTmF0aXZlV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSwg
VmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2Rp
Zmllcj4pOwogICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqLCBWZWN0b3I8V2ViUGxh
dGZvcm1Ub3VjaFBvaW50PiYmKTsKICAgICBOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IE5hdGl2
ZVdlYlRvdWNoRXZlbnQmKTsKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvTmF0aXZlV2ViVG91Y2hFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9ndGsvTmF0aXZlV2ViVG91Y2hFdmVudEd0ay5jcHAKaW5kZXggOTQ0ZTZhNGY3YTg5
NDUwZjM3MmVhZWNjOWY5MmNlZDEyMDRlZjA4NS4uMDJiMzg1MzQwODA3NzYxMjdmNGM5YzE5YmRi
ODYxZTk2NWI3NWZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05hdGl2
ZVdlYlRvdWNoRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9OYXRp
dmVXZWJUb3VjaEV2ZW50R3RrLmNwcApAQCAtMzQsNiArMzQsMTIgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK05hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoV2ViRXZl
bnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50
cywgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzKQorICAgIDogV2ViVG91
Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwgV1RGTW92ZShtb2RpZmllcnMpLCBX
YWxsVGltZTo6bm93KCkpCisgICAgLCBtX25hdGl2ZUV2ZW50KG51bGxwdHIpCit7Cit9CisKIE5h
dGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBW
ZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmIHRvdWNoUG9pbnRzKQogICAgIDogV2ViVG91
Y2hFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoZXZlbnQsIFdURk1v
dmUodG91Y2hQb2ludHMpKSkKICAgICAsIG1fbmF0aXZlRXZlbnQoZ2RrX2V2ZW50X2NvcHkoZXZl
bnQpKQpAQCAtNDEsOCArNDcsOCBAQCBOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3Vj
aEV2ZW50KEdka0V2ZW50KiBldmVudCwgVmVjdG9yPFdlYlBsYXRmb3JtVG91YwogfQogCiBOYXRp
dmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNo
RXZlbnQmIGV2ZW50KQotICAgIDogV2ViVG91Y2hFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYlRvdWNoRXZlbnQoZXZlbnQubmF0aXZlRXZlbnQoKSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91
Y2hQb2ludD4oZXZlbnQudG91Y2hQb2ludHMoKSkpKQotICAgICwgbV9uYXRpdmVFdmVudChnZGtf
ZXZlbnRfY29weShjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQubmF0aXZlRXZlbnQoKSkpKQor
ICAgIDogV2ViVG91Y2hFdmVudChldmVudC50eXBlKCksIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNo
UG9pbnQ+KGV2ZW50LnRvdWNoUG9pbnRzKCkpLCBldmVudC5tb2RpZmllcnMoKSwgZXZlbnQudGlt
ZXN0YW1wKCkpCisgICAgLCBtX25hdGl2ZUV2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KCkgPyBnZGtf
ZXZlbnRfY29weShjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQubmF0aXZlRXZlbnQoKSkpIDog
bnVsbHB0cikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCBjNGE5ODMzZTI4YmI1MGQxZjg3NWFhMWM1
YWQwNTdjZWUwMWQyODFhLi4yNWIxMzcwNjQ3N2QwOTVjZmQzZmE2ODk4YjAzZDI3YzkyYjAzMzcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlLmNwcApAQCAtMzMzLDYgKzMzMywxMSBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdC
YXNlUHJpdmF0ZSB7CiAgICAgYm9vbCBwYWdlR3JhYmJlZFRvdWNoOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFBvaW50ZXJMb2NrTWFuYWdlcj4gcG9pbnRlckxvY2tNYW5hZ2VyOworCisjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKKyAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiBzeW50
aFRvdWNoRXZlbnRzOworICAgIEhhc2hTZXQ8dW5zaWduZWQsIERlZmF1bHRIYXNoPHVuc2lnbmVk
PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+IHVwZGF0ZWRT
eW50aFRvdWNoRXZlbnRzOworI2VuZGlmCiB9OwogCiAjaWYgVVNFKEdUSzQpCkBAIC0xNDg2LDYg
KzE0OTEsMjIgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VMZWF2ZShXZWJLaXRXZWJW
aWV3QmFzZSogd2ViVmlld0Jhc2UsIEdka0Nyb3NzaW5nTW8KIH0KICNlbmRpZgogCitzdGF0aWMg
aW5saW5lIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IHRvV2ViS2l0TW9kaWZpZXJzKHVu
c2lnbmVkIG1vZGlmaWVycykKK3sKKyAgICBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiB3
ZWJFdmVudE1vZGlmaWVyczsKKyAgICBpZiAobW9kaWZpZXJzICYgR0RLX0NPTlRST0xfTUFTSykK
KyAgICAgICAgd2ViRXZlbnRNb2RpZmllcnMuYWRkKFdlYkV2ZW50OjpNb2RpZmllcjo6Q29udHJv
bEtleSk7CisgICAgaWYgKG1vZGlmaWVycyAmIEdES19TSElGVF9NQVNLKQorICAgICAgICB3ZWJF
dmVudE1vZGlmaWVycy5hZGQoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7CisgICAgaWYg
KG1vZGlmaWVycyAmIEdES19NT0QxX01BU0spCisgICAgICAgIHdlYkV2ZW50TW9kaWZpZXJzLmFk
ZChXZWJFdmVudDo6TW9kaWZpZXI6OkFsdEtleSk7CisgICAgaWYgKG1vZGlmaWVycyAmIEdES19N
RVRBX01BU0spCisgICAgICAgIHdlYkV2ZW50TW9kaWZpZXJzLmFkZChXZWJFdmVudDo6TW9kaWZp
ZXI6Ok1ldGFLZXkpOworICAgIGlmIChQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Om1vZGlmaWVyc0Nv
bnRhaW5DYXBzTG9jayhtb2RpZmllcnMpKQorICAgICAgICB3ZWJFdmVudE1vZGlmaWVycy5hZGQo
V2ViRXZlbnQ6Ok1vZGlmaWVyOjpDYXBzTG9ja0tleSk7CisgICAgcmV0dXJuIHdlYkV2ZW50TW9k
aWZpZXJzOworfQorCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIHN0YXRpYyB2b2lkIGFwcGVu
ZFRvdWNoRXZlbnQoR3RrV2lkZ2V0KiB3ZWJWaWV3QmFzZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91
Y2hQb2ludD4mIHRvdWNoUG9pbnRzLCBHZGtFdmVudCogZXZlbnQsIFdlYlBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlKQogewpAQCAtMTU5Myw2ICsxNjE0LDk3IEBAIHN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZVRvdWNoRXZlbnQoR3RrV2lkZ2V0KiB3aWRn
ZXQsIEdka0V2ZW50VG91Y2gqIGV2CiAgICAgcmV0dXJuIEdUS19XSURHRVRfQ0xBU1Mod2Via2l0
X3dlYl92aWV3X2Jhc2VfcGFyZW50X2NsYXNzKS0+dG91Y2hfZXZlbnQod2lkZ2V0LCBldmVudCk7
CiAjZW5kaWYKIH0KKwordm9pZCB3ZWJraXRXZWJWaWV3QmFzZUFkZFN5bnRoZXNpemVkVG91Y2hQ
b2ludChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGludCB4LCBpbnQgeSkKK3sKKyAg
ICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKKyAg
ICBwcml2LT51cGRhdGVkU3ludGhUb3VjaEV2ZW50cy5hZGQocHJpdi0+c3ludGhUb3VjaEV2ZW50
cy5zaXplKCkpOworICAgIHByaXYtPnN5bnRoVG91Y2hFdmVudHMuYXBwZW5kKFdlYlBsYXRmb3Jt
VG91Y2hQb2ludChwcml2LT5zeW50aFRvdWNoRXZlbnRzLnNpemUoKSwgV2ViUGxhdGZvcm1Ub3Vj
aFBvaW50OjpUb3VjaFByZXNzZWQsIEludFBvaW50KHgsIHkpLCB3aWRnZXRSb290Q29vcmRzKEdU
S19XSURHRVQod2ViVmlld0Jhc2UpLCB4LCB5KSkpOworfQorCit2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlVXBkYXRlU3ludGhlc2l6ZWRUb3VjaFBvaW50KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
QmFzZSwgaW50IGluZGV4LCBpbnQgeCwgaW50IHkpCit7CisgICAgV2ViS2l0V2ViVmlld0Jhc2VQ
cml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CisgICAgQVNTRVJUKGluZGV4ID49IDAg
JiYgc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPD0gcHJpdi0+c3ludGhUb3VjaEV2ZW50cy5z
aXplKCkpOworCisgICAgcHJpdi0+c3ludGhUb3VjaEV2ZW50c1tpbmRleF0gPSBXZWJQbGF0Zm9y
bVRvdWNoUG9pbnQoaW5kZXgsIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hNb3ZlZCwgSW50
UG9pbnQoeCwgeSksIHdpZGdldFJvb3RDb29yZHMoR1RLX1dJREdFVCh3ZWJWaWV3QmFzZSksIHgs
IHkpKTsKKyAgICBwcml2LT51cGRhdGVkU3ludGhUb3VjaEV2ZW50cy5hZGQoaW5kZXgpOworfQor
Cit2b2lkIHdlYmtpdFdlYlZpZXdCYXNlUmVsZWFzZVN5bnRoZXNpemVkVG91Y2hQb2ludChXZWJL
aXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGludCBpbmRleCkKK3sKKyAgICBXZWJLaXRXZWJW
aWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKKyAgICBBU1NFUlQoaW5k
ZXggPj0gMCAmJiBzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KSA8PSBwcml2LT5zeW50aFRvdWNo
RXZlbnRzLnNpemUoKSk7CisKKyAgICBhdXRvJiBvbGRFdmVudCA9IHByaXYtPnN5bnRoVG91Y2hF
dmVudHNbaW5kZXhdOworICAgIHByaXYtPnN5bnRoVG91Y2hFdmVudHNbaW5kZXhdID0gV2ViUGxh
dGZvcm1Ub3VjaFBvaW50KGluZGV4LCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFz
ZWQsIG9sZEV2ZW50LnBvc2l0aW9uKCksIG9sZEV2ZW50LnNjcmVlblBvc2l0aW9uKCkpOworICAg
IHByaXYtPnVwZGF0ZWRTeW50aFRvdWNoRXZlbnRzLmFkZChpbmRleCk7Cit9CisKK3ZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VDYW5jZWxTeW50aGVzaXplZFRvdWNoUG9pbnQoV2ViS2l0V2ViVmlld0Jh
c2UqIHdlYlZpZXdCYXNlLCBpbnQgaW5kZXgpCit7CisgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CisgICAgQVNTRVJUKGluZGV4ID49IDAgJiYg
c3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPD0gcHJpdi0+c3ludGhUb3VjaEV2ZW50cy5zaXpl
KCkpOworCisgICAgYXV0byYgb2xkRXZlbnQgPSBwcml2LT5zeW50aFRvdWNoRXZlbnRzW2luZGV4
XTsKKyAgICBwcml2LT5zeW50aFRvdWNoRXZlbnRzW2luZGV4XSA9IFdlYlBsYXRmb3JtVG91Y2hQ
b2ludChpbmRleCwgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaENhbmNlbGxlZCwgb2xkRXZl
bnQucG9zaXRpb24oKSwgb2xkRXZlbnQuc2NyZWVuUG9zaXRpb24oKSk7CisgICAgcHJpdi0+dXBk
YXRlZFN5bnRoVG91Y2hFdmVudHMuYWRkKGluZGV4KTsKK30KKwordm9pZCB3ZWJraXRXZWJWaWV3
QmFzZUNsZWFyU3ludGhlc2l6ZWRUb3VjaFBvaW50cyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmll
d0Jhc2UpCit7CisgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jh
c2UtPnByaXY7CisgICAgcHJpdi0+c3ludGhUb3VjaEV2ZW50cy5jbGVhcigpOworICAgIHByaXYt
PnVwZGF0ZWRTeW50aFRvdWNoRXZlbnRzLmNsZWFyKCk7Cit9CisKK3N0YXRpYyBWZWN0b3I8V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50PiBnZXRVcGRhdGVkU3ludGhUb3VjaEV2ZW50cyhXZWJLaXRXZWJW
aWV3QmFzZSogd2ViVmlld0Jhc2UpCit7CisgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBw
cml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CisgICAgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2lu
dD4gZXZlbnRzOworICAgIGZvciAoYXV0byBpZCA6IHByaXYtPnVwZGF0ZWRTeW50aFRvdWNoRXZl
bnRzKQorICAgICAgICBldmVudHMuYXBwZW5kKHByaXYtPnN5bnRoVG91Y2hFdmVudHNbaWRdKTsK
KyAgICByZXR1cm4gZXZlbnRzOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVVcGRhdGVkU3ludGhU
b3VjaEV2ZW50cyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCit7CisgICAgV2ViS2l0
V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CisgICAgZm9yIChh
dXRvIGlkIDogcHJpdi0+dXBkYXRlZFN5bnRoVG91Y2hFdmVudHMpCisgICAgICAgIHByaXYtPnN5
bnRoVG91Y2hFdmVudHNbaWRdLnNldFN0YXRlKFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hT
dGF0aW9uYXJ5KTsKKyAgICBwcml2LT5zeW50aFRvdWNoRXZlbnRzLnJlbW92ZUFsbE1hdGNoaW5n
KFtdIChhdXRvIHRvdWNoUG9pbnQpIHsKKyAgICAgICAgcmV0dXJuIHRvdWNoUG9pbnQuc3RhdGUo
KSA9PSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKKyAgICAgICAgfSk7
Cit9CisKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplVG91Y2hFdmVudChXZWJLaXRX
ZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIFRvdWNoRXZlbnRUeXBlIHR5cGUsIHVuc2lnbmVkIG1v
ZGlmaWVycykKK3sKKyAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3
QmFzZS0+cHJpdjsKKyAgICBXZWJFdmVudDo6VHlwZSBldmVudFR5cGUgPSBXZWJFdmVudDo6VHlw
ZTo6Tm9UeXBlOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgVG91Y2hFdmVudFR5cGU6
OlN0YXJ0OgorICAgICAgICBldmVudFR5cGUgPSBXZWJFdmVudDo6VHlwZTo6VG91Y2hTdGFydDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUb3VjaEV2ZW50VHlwZTo6TW92ZToKKyAgICAgICAg
ZXZlbnRUeXBlID0gV2ViRXZlbnQ6OlR5cGU6OlRvdWNoTW92ZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBUb3VjaEV2ZW50VHlwZTo6RW5kOgorICAgICAgICBldmVudFR5cGUgPSBXZWJFdmVu
dDo6VHlwZTo6VG91Y2hFbmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVG91Y2hFdmVudFR5
cGU6OkNhbmNlbDoKKyAgICAgICAgZXZlbnRUeXBlID0gV2ViRXZlbnQ6OlR5cGU6OlRvdWNoQ2Fu
Y2VsOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcHJpdi0+cGFnZVByb3h5LT5o
YW5kbGVUb3VjaEV2ZW50KE5hdGl2ZVdlYlRvdWNoRXZlbnQoZXZlbnRUeXBlLCBnZXRVcGRhdGVk
U3ludGhUb3VjaEV2ZW50cyh3ZWJWaWV3QmFzZSksIHRvV2ViS2l0TW9kaWZpZXJzKG1vZGlmaWVy
cykpKTsKKyAgICBpZiAodHlwZSA9PSBUb3VjaEV2ZW50VHlwZTo6RW5kIHx8IHR5cGUgPT0gVG91
Y2hFdmVudFR5cGU6OkNhbmNlbCkKKyAgICAgICAgcmVtb3ZlVXBkYXRlZFN5bnRoVG91Y2hFdmVu
dHMod2ViVmlld0Jhc2UpOworICAgIHByaXYtPnVwZGF0ZWRTeW50aFRvdWNoRXZlbnRzLmNsZWFy
KCk7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCiB2b2lkIHdlYmtpdFdl
YlZpZXdCYXNlU2V0RW5hYmxlQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZShXZWJLaXRXZWJW
aWV3QmFzZSogd2ViVmlld0Jhc2UsIGJvb2wgZW5hYmxlZCkKQEAgLTI3MjQsMjIgKzI4MzYsNiBA
QCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZUNvbXBvc2l0aW9uS2V5UHJlc3MoV2Vi
S2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYQogICAgIHdlYlZpZXdCYXNlLT5wcml2LT5wYWdlUHJv
eHktPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0ZXh0LCBXVEZN
b3ZlKHVuZGVybGluZXMpLCBXVEZNb3ZlKHNlbGVjdGlvblJhbmdlKSkpOwogfQogCi1zdGF0aWMg
aW5saW5lIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IHRvV2ViS2l0TW9kaWZpZXJzKHVu
c2lnbmVkIG1vZGlmaWVycykKLXsKLSAgICBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiB3
ZWJFdmVudE1vZGlmaWVyczsKLSAgICBpZiAobW9kaWZpZXJzICYgR0RLX0NPTlRST0xfTUFTSykK
LSAgICAgICAgd2ViRXZlbnRNb2RpZmllcnMuYWRkKFdlYkV2ZW50OjpNb2RpZmllcjo6Q29udHJv
bEtleSk7Ci0gICAgaWYgKG1vZGlmaWVycyAmIEdES19TSElGVF9NQVNLKQotICAgICAgICB3ZWJF
dmVudE1vZGlmaWVycy5hZGQoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7Ci0gICAgaWYg
KG1vZGlmaWVycyAmIEdES19NT0QxX01BU0spCi0gICAgICAgIHdlYkV2ZW50TW9kaWZpZXJzLmFk
ZChXZWJFdmVudDo6TW9kaWZpZXI6OkFsdEtleSk7Ci0gICAgaWYgKG1vZGlmaWVycyAmIEdES19N
RVRBX01BU0spCi0gICAgICAgIHdlYkV2ZW50TW9kaWZpZXJzLmFkZChXZWJFdmVudDo6TW9kaWZp
ZXI6Ok1ldGFLZXkpOwotICAgIGlmIChQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Om1vZGlmaWVyc0Nv
bnRhaW5DYXBzTG9jayhtb2RpZmllcnMpKQotICAgICAgICB3ZWJFdmVudE1vZGlmaWVycy5hZGQo
V2ViRXZlbnQ6Ok1vZGlmaWVyOjpDYXBzTG9ja0tleSk7Ci0gICAgcmV0dXJuIHdlYkV2ZW50TW9k
aWZpZXJzOwotfQotCiBzdGF0aWMgaW5saW5lIFBvaW50ZXJJRCBwcmltYXJ5UG9pbnRlckZvclR5
cGUoY29uc3QgU3RyaW5nJiBwb2ludGVyVHlwZSkKIHsKICAgICBpZiAocG9pbnRlclR5cGUgPT0g
bW91c2VQb2ludGVyRXZlbnRUeXBlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5hbC5oCmluZGV4IGY1ZDIz
Mzc4YTYwNmRkOGNhNzQxYWExYmY3YjJkYmZhNGE1MzM2M2YuLjk3M2RmMjQxYWVmZjA2ZGQ5ZTVj
MGQwNjI1ODEzMDQ0ZTQxOGE4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5hbC5oCkBAIC00NSwzICs0
NSwxNCBAQCBXS19FWFBPUlQgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVLZXlFdmVu
dChXZWJLaXRXZWJWaWV3QmFzZSosIEtleUV2ZW50VAogCiBlbnVtIGNsYXNzIFdoZWVsRXZlbnRQ
aGFzZSB7IE5vUGhhc2UsIEJlZ2FuLCBDaGFuZ2VkLCBFbmRlZCwgQ2FuY2VsbGVkLCBNYXlCZWdp
biB9OwogV0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVu
dChXZWJLaXRXZWJWaWV3QmFzZSosIGRvdWJsZSBkZWx0YVgsIGRvdWJsZSBkZWx0YVksIGludCB4
LCBpbnQgeSwgV2hlZWxFdmVudFBoYXNlLCBXaGVlbEV2ZW50UGhhc2UgbW9tZW50dW1QaGFzZSk7
CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorV0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VBZGRTeW50aGVzaXplZFRvdWNoUG9pbnQoV2ViS2l0V2ViVmlld0Jhc2UqLCBpbnQgeCwg
aW50IHkpOworV0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VVcGRhdGVTeW50aGVzaXpl
ZFRvdWNoUG9pbnQoV2ViS2l0V2ViVmlld0Jhc2UqLCBpbnQgaW5kZXgsIGludCB4LCBpbnQgeSk7
CitXS19FWFBPUlQgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVJlbGVhc2VTeW50aGVzaXplZFRvdWNo
UG9pbnQoV2ViS2l0V2ViVmlld0Jhc2UqLCBpbnQgaW5kZXgpOworV0tfRVhQT1JUIHZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VDYW5jZWxTeW50aGVzaXplZFRvdWNoUG9pbnQoV2ViS2l0V2ViVmlld0Jh
c2UqLCBpbnQgaW5kZXgpOworV0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDbGVhclN5
bnRoZXNpemVkVG91Y2hQb2ludHMoV2ViS2l0V2ViVmlld0Jhc2UqKTsKKworZW51bSBjbGFzcyBU
b3VjaEV2ZW50VHlwZSB7IFN0YXJ0LCBNb3ZlLCBFbmQsIENhbmNlbCB9OworV0tfRVhQT1JUIHZv
aWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplVG91Y2hFdmVudChXZWJLaXRXZWJWaWV3QmFz
ZSosIFRvdWNoRXZlbnRUeXBlLCB1bnNpZ25lZCBtb2RpZmllcnMpOworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWQ4YjdkMjlhMDM5
OTlkM2JkMzhhYzU2NjE5NjVhMmQ3MTQxZjBlYi4uZGNhMDM5YmY2MzNiZTIxMDA0NDgwMTRmOTM1
MDg3ZWYzM2VjY2JlNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA5LTA2ICBDaHJpcyBMb3JkICA8Y2xvcmRA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBFdmVudFNlbmRlclByb3h5R3RrIGRvZXMgbm90
IGltcGxlbWVudCB0b3VjaCBldmVudCBzeW50aGVzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTU1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0b3VjaC1yZWxhdGVkIGZ1bmN0aW9u
cyBpbiBHVEsgRXZlbnRTZW5kZXJQcm94eS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
RXZlbnRTZW5kZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50
U2VuZGVyUHJveHlHdGsuY3BwOgorICAgICAgICAoV1RSOjp0b1dlYktpdEdMaWJBUEkpOgorICAg
ICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp+RXZlbnRTZW5kZXJQcm94eSk6CisgICAgICAg
IChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OmFkZFRvdWNoUG9pbnQpOgorICAgICAgICAoV1RSOjpF
dmVudFNlbmRlclByb3h5Ojp1cGRhdGVUb3VjaFBvaW50KToKKyAgICAgICAgKFdUUjo6RXZlbnRT
ZW5kZXJQcm94eTo6dG91Y2hTdGFydCk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6
OnRvdWNoTW92ZSk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnRvdWNoRW5kKToK
KyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6dG91Y2hDYW5jZWwpOgorICAgICAgICAo
V1RSOjpFdmVudFNlbmRlclByb3h5OjpjbGVhclRvdWNoUG9pbnRzKToKKyAgICAgICAgKFdUUjo6
RXZlbnRTZW5kZXJQcm94eTo6cmVsZWFzZVRvdWNoUG9pbnQpOgorICAgICAgICAoV1RSOjpFdmVu
dFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50KToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5k
ZXJQcm94eTo6c2V0VG91Y2hQb2ludFJhZGl1cyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVy
UHJveHk6OnNldFRvdWNoTW9kaWZpZXIpOgorCiAyMDIxLTA4LTExICBMYXVybyBNb3VyYSAgPGxt
b3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIEhhbmRsZSBlc2NhcGUga2V5IGluIHdw
ZUtleVN5bUZvcktleVJlZgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVu
dFNlbmRlclByb3h5LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHku
aAppbmRleCAxOGZhODkyZTQyN2MwMDBjZDM1N2ZlMTFkODQ1ZWMyMDljZjIxMWQzLi43MmQ5Mzlm
NTdjMzU0OGM4NGRjNGY0YTJjMDliZjdjMzFiODBmMjc4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0V2ZW50U2VuZGVyUHJveHkuaApAQCAtMTMwLDYgKzEzMCw5IEBAIHByaXZhdGU6CiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgaW50IG1fZXZlbnROdW1iZXIgeyAwIH07CiAjZW5kaWYKKyNp
ZiBQTEFURk9STShHVEspCisgICAgV0tFdmVudE1vZGlmaWVycyBtX3RvdWNoTW9kaWZpZXJzIHsg
MCB9OworI2VuZGlmCiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHVpbnQzMl90IG1fYnV0dG9uU3Rh
dGUgeyAwIH07CiAgICAgVmVjdG9yPHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3PiBt
X3RvdWNoRXZlbnRzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZl
bnRTZW5kZXJQcm94eUd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNl
bmRlclByb3h5R3RrLmNwcAppbmRleCBhZmU4OWQyNTk5ZmVmZmM3MjliMjJkZTRlMWQ2YzM3NjJh
ZDRlZTAzLi43ZDQwZWE1Y2UyNzRhZjdjNjZlOGE4ZDA3ZGIzYzBkZDEwMmMzYTEwIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcApA
QCAtNzAsOCArNzAsMTQgQEAgRXZlbnRTZW5kZXJQcm94eTo6RXZlbnRTZW5kZXJQcm94eShUZXN0
Q29udHJvbGxlciogdGVzdENvbnRyb2xsZXIpCiB7CiB9CiAKK3N0YXRpYyBpbmxpbmUgV2ViS2l0
V2ViVmlld0Jhc2UqIHRvV2ViS2l0R0xpYkFQSShQbGF0Zm9ybVdLVmlldyB2aWV3KQoreworICAg
IHJldHVybiBjb25zdF9jYXN0PFdlYktpdFdlYlZpZXdCYXNlKj4ocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBXZWJLaXRXZWJWaWV3QmFzZSo+KHZpZXcpKTsKK30KKwogRXZlbnRTZW5kZXJQcm94eTo6
fkV2ZW50U2VuZGVyUHJveHkoKQogeworICAgIHdlYmtpdFdlYlZpZXdCYXNlQ2xlYXJTeW50aGVz
aXplZFRvdWNoUG9pbnRzKHRvV2ViS2l0R0xpYkFQSShtX3Rlc3RDb250cm9sbGVyLT5tYWluV2Vi
VmlldygpLT5wbGF0Zm9ybVZpZXcoKSkpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgZXZlbnRTZW5k
ZXJCdXR0b25Ub0dES0J1dHRvbih1bnNpZ25lZCBidXR0b24pCkBAIC0yMzIsMTEgKzIzOCw2IEBA
IHN0YXRpYyBpbnQgZ2V0R0RLS2V5U3ltRm9yS2V5UmVmKFdLU3RyaW5nUmVmIGtleVJlZiwgdW5z
aWduZWQgbG9jYXRpb24sIGd1aW50KiBtCiAgICAgcmV0dXJuIGdka191bmljb2RlX3RvX2tleXZh
bChzdGF0aWNfY2FzdDxndWludDMyPihidWZmZXIuZ2V0KClbMF0pKTsKIH0KIAotc3RhdGljIGlu
bGluZSBXZWJLaXRXZWJWaWV3QmFzZSogdG9XZWJLaXRHTGliQVBJKFBsYXRmb3JtV0tWaWV3IHZp
ZXcpCi17Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8V2ViS2l0V2ViVmlld0Jhc2UqPihyZWludGVy
cHJldF9jYXN0PGNvbnN0IFdlYktpdFdlYlZpZXdCYXNlKj4odmlldykpOwotfQotCiB2b2lkIEV2
ZW50U2VuZGVyUHJveHk6OmtleURvd24oV0tTdHJpbmdSZWYga2V5UmVmLCBXS0V2ZW50TW9kaWZp
ZXJzIHdrTW9kaWZpZXJzLCB1bnNpZ25lZCBsb2NhdGlvbikKIHsKICAgICBndWludCBtb2RpZmll
cnMgPSB3ZWJraXRNb2RpZmllcnNUb0dES01vZGlmaWVycyh3a01vZGlmaWVycyk7CkBAIC0zNTQs
NDggKzM1NSw2MiBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCBtaWxs
aXNlY29uZHMpCiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotdm9pZCBFdmVudFNlbmRl
clByb3h5OjphZGRUb3VjaFBvaW50KGludCwgaW50KQordm9pZCBFdmVudFNlbmRlclByb3h5Ojph
ZGRUb3VjaFBvaW50KGludCB4LCBpbnQgeSkKIHsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZUFkZFN5
bnRoZXNpemVkVG91Y2hQb2ludCh0b1dlYktpdEdMaWJBUEkobV90ZXN0Q29udHJvbGxlci0+bWFp
bldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkpLCB4LCB5KTsKIH0KIAotdm9pZCBFdmVudFNlbmRl
clByb3h5Ojp1cGRhdGVUb3VjaFBvaW50KGludCwgaW50LCBpbnQpCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OnVwZGF0ZVRvdWNoUG9pbnQoaW50IGluZGV4LCBpbnQgeCwgaW50IHkpCiB7CisgICAg
d2Via2l0V2ViVmlld0Jhc2VVcGRhdGVTeW50aGVzaXplZFRvdWNoUG9pbnQodG9XZWJLaXRHTGli
QVBJKG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpKSwgaW5k
ZXgsIHgsIHkpOwogfQogCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnRvdWNoU3RhcnQoKQogewor
ICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVRvdWNoRXZlbnQodG9XZWJLaXRHTGliQVBJ
KG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpKSwgVG91Y2hF
dmVudFR5cGU6OlN0YXJ0LCB3ZWJraXRNb2RpZmllcnNUb0dES01vZGlmaWVycyhtX3RvdWNoTW9k
aWZpZXJzKSk7CiB9CiAKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hNb3ZlKCkKIHsKKyAg
ICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVUb3VjaEV2ZW50KHRvV2ViS2l0R0xpYkFQSSht
X3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSksIFRvdWNoRXZl
bnRUeXBlOjpNb3ZlLCB3ZWJraXRNb2RpZmllcnNUb0dES01vZGlmaWVycyhtX3RvdWNoTW9kaWZp
ZXJzKSk7CiB9CiAKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hFbmQoKQogeworICAgIHdl
YmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVRvdWNoRXZlbnQodG9XZWJLaXRHTGliQVBJKG1fdGVz
dENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpKSwgVG91Y2hFdmVudFR5
cGU6OkVuZCwgd2Via2l0TW9kaWZpZXJzVG9HREtNb2RpZmllcnMobV90b3VjaE1vZGlmaWVycykp
OwogfQogCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnRvdWNoQ2FuY2VsKCkKIHsKKyAgICB3ZWJr
aXRXZWJWaWV3QmFzZVN5bnRoZXNpemVUb3VjaEV2ZW50KHRvV2ViS2l0R0xpYkFQSShtX3Rlc3RD
b250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSksIFRvdWNoRXZlbnRUeXBl
OjpDYW5jZWwsIHdlYmtpdE1vZGlmaWVyc1RvR0RLTW9kaWZpZXJzKG1fdG91Y2hNb2RpZmllcnMp
KTsKIH0KIAogdm9pZCBFdmVudFNlbmRlclByb3h5OjpjbGVhclRvdWNoUG9pbnRzKCkKIHsKKyAg
ICB3ZWJraXRXZWJWaWV3QmFzZUNsZWFyU3ludGhlc2l6ZWRUb3VjaFBvaW50cyh0b1dlYktpdEdM
aWJBUEkobV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkpKTsK
IH0KIAotdm9pZCBFdmVudFNlbmRlclByb3h5OjpyZWxlYXNlVG91Y2hQb2ludChpbnQpCit2b2lk
IEV2ZW50U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBvaW50KGludCBpbmRleCkKIHsKKyAgICB3
ZWJraXRXZWJWaWV3QmFzZVJlbGVhc2VTeW50aGVzaXplZFRvdWNoUG9pbnQodG9XZWJLaXRHTGli
QVBJKG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpKSwgaW5k
ZXgpOwogfQogCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNhbmNlbFRvdWNoUG9pbnQoaW50KQor
dm9pZCBFdmVudFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50KGludCBpbmRleCkKIHsKKyAg
ICB3ZWJraXRXZWJWaWV3QmFzZUNhbmNlbFN5bnRoZXNpemVkVG91Y2hQb2ludCh0b1dlYktpdEdM
aWJBUEkobV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkpLCBp
bmRleCk7CiB9CiAKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0VG91Y2hQb2ludFJhZGl1cyhp
bnQsIGludCkKIHsKKyAgICAvLyBQdXJwb3NlZnVsbHkgdW5pbXBsZW1lbnRlZCBhcyB0b3VjaCBw
b2ludCByYWRpdXMgaXNuJ3QgaW1wbGVtZW50ZWQgZm9yIHJlYWwgZXZlbnRzIHlldC4KIH0KIAot
dm9pZCBFdmVudFNlbmRlclByb3h5OjpzZXRUb3VjaE1vZGlmaWVyKFdLRXZlbnRNb2RpZmllcnMs
IGJvb2wpCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNldFRvdWNoTW9kaWZpZXIoV0tFdmVudE1v
ZGlmaWVycyBtb2RpZmllcnMsIGJvb2wgb24pCiB7CisgICAgaWYgKG9uKQorICAgICAgICBtX3Rv
dWNoTW9kaWZpZXJzIHw9IG1vZGlmaWVyczsKKyAgICBlbHNlCisgICAgICAgIG1fdG91Y2hNb2Rp
ZmllcnMgJj0gfm1vZGlmaWVyczsKIH0KICNlbmRpZiAvLyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437495</attachid>
            <date>2021-09-07 06:38:07 -0700</date>
            <delta_ts>2021-09-07 06:38:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229557-20210907143805.patch</filename>
            <type>text/plain</type>
            <size>26985</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwOTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0MjhhN2FmMGY1NTY1YmFj
MjkxNmMxYzdmOTZiMGE4ZTM2YjAxMWQuLjk4OWEwMTk4N2Y2ZDk0ZWYxODNlMzI1MjA2MWM3YzBk
MGVmNDE2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDktMDYgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEV2ZW50U2VuZGVyUHJveHlH
dGsgZG9lcyBub3QgaW1wbGVtZW50IHRvdWNoIGV2ZW50IHN5bnRoZXNpcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRvdWNoIGV2ZW50
IHN5bnRoZXNpcyBpbiBHVEsgV2ViS2l0V2ViVmlld0Jhc2UuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogU2hhcmVkL05hdGl2
ZVdlYlRvdWNoRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05hdGl2ZVdlYlRvdWNoRXZl
bnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVX
ZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
QmFzZS5jcHA6CisgICAgICAgICh0b1dlYktpdE1vZGlmaWVycyk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3QmFzZUFkZFN5bnRoZXNpemVkVG91Y2hQb2ludCk6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3QmFzZVVwZGF0ZVN5bnRoZXNpemVkVG91Y2hQb2ludCk6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3QmFzZVJlbGVhc2VTeW50aGVzaXplZFRvdWNoUG9pbnQpOgorICAgICAgICAod2Via2l0V2Vi
Vmlld0Jhc2VDYW5jZWxTeW50aGVzaXplZFRvdWNoUG9pbnQpOgorICAgICAgICAod2Via2l0V2Vi
Vmlld0Jhc2VDbGVhclN5bnRoZXNpemVkVG91Y2hQb2ludHMpOgorICAgICAgICAoZ2V0VXBkYXRl
ZFN5bnRoVG91Y2hFdmVudHMpOgorICAgICAgICAocmVtb3ZlVXBkYXRlZFN5bnRoVG91Y2hFdmVu
dHMpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplVG91Y2hFdmVudCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5hbC5oOgor
CiAyMDIxLTA4LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyODA4NzUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCBkNzMzMzAxNmU4NDkxYjQyODcxNzhh
MjM3NTY5ZmRlOWQ4OWEzYTAwLi4xODM4YTU4NWIwODQxMDEzNTc0ZmU1OGYxZjkxZTM2ZGU3M2Ni
NDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCkBAIC01
Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBOYXRpdmVXZWJUb3VjaEV2ZW50KGNv
bnN0IF9VSVdlYlRvdWNoRXZlbnQqLCBVSUtleU1vZGlmaWVyRmxhZ3MpOwogI2VuZGlmCiAjZWxp
ZiBQTEFURk9STShHVEspCisgICAgTmF0aXZlV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSwg
VmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2Rp
Zmllcj4pOwogICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqLCBWZWN0b3I8V2ViUGxh
dGZvcm1Ub3VjaFBvaW50PiYmKTsKICAgICBOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IE5hdGl2
ZVdlYlRvdWNoRXZlbnQmKTsKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvTmF0aXZlV2ViVG91Y2hFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9ndGsvTmF0aXZlV2ViVG91Y2hFdmVudEd0ay5jcHAKaW5kZXggOTQ0ZTZhNGY3YTg5
NDUwZjM3MmVhZWNjOWY5MmNlZDEyMDRlZjA4NS4uMDJiMzg1MzQwODA3NzYxMjdmNGM5YzE5YmRi
ODYxZTk2NWI3NWZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL05hdGl2
ZVdlYlRvdWNoRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9OYXRp
dmVXZWJUb3VjaEV2ZW50R3RrLmNwcApAQCAtMzQsNiArMzQsMTIgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK05hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoV2ViRXZl
bnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50
cywgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzKQorICAgIDogV2ViVG91
Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwgV1RGTW92ZShtb2RpZmllcnMpLCBX
YWxsVGltZTo6bm93KCkpCisgICAgLCBtX25hdGl2ZUV2ZW50KG51bGxwdHIpCit7Cit9CisKIE5h
dGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqIGV2ZW50LCBW
ZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmIHRvdWNoUG9pbnRzKQogICAgIDogV2ViVG91
Y2hFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoZXZlbnQsIFdURk1v
dmUodG91Y2hQb2ludHMpKSkKICAgICAsIG1fbmF0aXZlRXZlbnQoZ2RrX2V2ZW50X2NvcHkoZXZl
bnQpKQpAQCAtNDEsOCArNDcsOCBAQCBOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3Vj
aEV2ZW50KEdka0V2ZW50KiBldmVudCwgVmVjdG9yPFdlYlBsYXRmb3JtVG91YwogfQogCiBOYXRp
dmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNo
RXZlbnQmIGV2ZW50KQotICAgIDogV2ViVG91Y2hFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYlRvdWNoRXZlbnQoZXZlbnQubmF0aXZlRXZlbnQoKSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91
Y2hQb2ludD4oZXZlbnQudG91Y2hQb2ludHMoKSkpKQotICAgICwgbV9uYXRpdmVFdmVudChnZGtf
ZXZlbnRfY29weShjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQubmF0aXZlRXZlbnQoKSkpKQor
ICAgIDogV2ViVG91Y2hFdmVudChldmVudC50eXBlKCksIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNo
UG9pbnQ+KGV2ZW50LnRvdWNoUG9pbnRzKCkpLCBldmVudC5tb2RpZmllcnMoKSwgZXZlbnQudGlt
ZXN0YW1wKCkpCisgICAgLCBtX25hdGl2ZUV2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KCkgPyBnZGtf
ZXZlbnRfY29weShjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQubmF0aXZlRXZlbnQoKSkpIDog
bnVsbHB0cikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCBjNGE5ODMzZTI4YmI1MGQxZjg3NWFhMWM1
YWQwNTdjZWUwMWQyODFhLi4yNWIxMzcwNjQ3N2QwOTVjZmQzZmE2ODk4YjAzZDI3YzkyYjAzMzcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlLmNwcApAQCAtMzMzLDYgKzMzMywxMSBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdC
YXNlUHJpdmF0ZSB7CiAgICAgYm9vbCBwYWdlR3JhYmJlZFRvdWNoOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFBvaW50ZXJMb2NrTWFuYWdlcj4gcG9pbnRlckxvY2tNYW5hZ2VyOworCisjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKKyAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiBzeW50
aFRvdWNoRXZlbnRzOworICAgIEhhc2hTZXQ8dW5zaWduZWQsIERlZmF1bHRIYXNoPHVuc2lnbmVk
PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1bnNpZ25lZD4+IHVwZGF0ZWRT
eW50aFRvdWNoRXZlbnRzOworI2VuZGlmCiB9OwogCiAjaWYgVVNFKEdUSzQpCkBAIC0xNDg2LDYg
KzE0OTEsMjIgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VMZWF2ZShXZWJLaXRXZWJW
aWV3QmFzZSogd2ViVmlld0Jhc2UsIEdka0Nyb3NzaW5nTW8KIH0KICNlbmRpZgogCitzdGF0aWMg
aW5saW5lIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IHRvV2ViS2l0TW9kaWZpZXJzKHVu
c2lnbmVkIG1vZGlmaWVycykKK3sKKyAgICBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiB3
ZWJFdmVudE1vZGlmaWVyczsKKyAgICBpZiAobW9kaWZpZXJzICYgR0RLX0NPTlRST0xfTUFTSykK
KyAgICAgICAgd2ViRXZlbnRNb2RpZmllcnMuYWRkKFdlYkV2ZW50OjpNb2RpZmllcjo6Q29udHJv
bEtleSk7CisgICAgaWYgKG1vZGlmaWVycyAmIEdES19TSElGVF9NQVNLKQorICAgICAgICB3ZWJF
dmVudE1vZGlmaWVycy5hZGQoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7CisgICAgaWYg
KG1vZGlmaWVycyAmIEdES19NT0QxX01BU0spCisgICAgICAgIHdlYkV2ZW50TW9kaWZpZXJzLmFk
ZChXZWJFdmVudDo6TW9kaWZpZXI6OkFsdEtleSk7CisgICAgaWYgKG1vZGlmaWVycyAmIEdES19N
RVRBX01BU0spCisgICAgICAgIHdlYkV2ZW50TW9kaWZpZXJzLmFkZChXZWJFdmVudDo6TW9kaWZp
ZXI6Ok1ldGFLZXkpOworICAgIGlmIChQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Om1vZGlmaWVyc0Nv
bnRhaW5DYXBzTG9jayhtb2RpZmllcnMpKQorICAgICAgICB3ZWJFdmVudE1vZGlmaWVycy5hZGQo
V2ViRXZlbnQ6Ok1vZGlmaWVyOjpDYXBzTG9ja0tleSk7CisgICAgcmV0dXJuIHdlYkV2ZW50TW9k
aWZpZXJzOworfQorCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIHN0YXRpYyB2b2lkIGFwcGVu
ZFRvdWNoRXZlbnQoR3RrV2lkZ2V0KiB3ZWJWaWV3QmFzZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91
Y2hQb2ludD4mIHRvdWNoUG9pbnRzLCBHZGtFdmVudCogZXZlbnQsIFdlYlBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlKQogewpAQCAtMTU5Myw2ICsxNjE0LDk3IEBAIHN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZVRvdWNoRXZlbnQoR3RrV2lkZ2V0KiB3aWRn
ZXQsIEdka0V2ZW50VG91Y2gqIGV2CiAgICAgcmV0dXJuIEdUS19XSURHRVRfQ0xBU1Mod2Via2l0
X3dlYl92aWV3X2Jhc2VfcGFyZW50X2NsYXNzKS0+dG91Y2hfZXZlbnQod2lkZ2V0LCBldmVudCk7
CiAjZW5kaWYKIH0KKwordm9pZCB3ZWJraXRXZWJWaWV3QmFzZUFkZFN5bnRoZXNpemVkVG91Y2hQ
b2ludChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGludCB4LCBpbnQgeSkKK3sKKyAg
ICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKKyAg
ICBwcml2LT51cGRhdGVkU3ludGhUb3VjaEV2ZW50cy5hZGQocHJpdi0+c3ludGhUb3VjaEV2ZW50
cy5zaXplKCkpOworICAgIHByaXYtPnN5bnRoVG91Y2hFdmVudHMuYXBwZW5kKFdlYlBsYXRmb3Jt
VG91Y2hQb2ludChwcml2LT5zeW50aFRvdWNoRXZlbnRzLnNpemUoKSwgV2ViUGxhdGZvcm1Ub3Vj
aFBvaW50OjpUb3VjaFByZXNzZWQsIEludFBvaW50KHgsIHkpLCB3aWRnZXRSb290Q29vcmRzKEdU
S19XSURHRVQod2ViVmlld0Jhc2UpLCB4LCB5KSkpOworfQorCit2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlVXBkYXRlU3ludGhlc2l6ZWRUb3VjaFBvaW50KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
QmFzZSwgaW50IGluZGV4LCBpbnQgeCwgaW50IHkpCit7CisgICAgV2ViS2l0V2ViVmlld0Jhc2VQ
cml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CisgICAgQVNTRVJUKGluZGV4ID49IDAg
JiYgc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPD0gcHJpdi0+c3ludGhUb3VjaEV2ZW50cy5z
aXplKCkpOworCisgICAgcHJpdi0+c3ludGhUb3VjaEV2ZW50c1tpbmRleF0gPSBXZWJQbGF0Zm9y
bVRvdWNoUG9pbnQoaW5kZXgsIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hNb3ZlZCwgSW50
UG9pbnQoeCwgeSksIHdpZGdldFJvb3RDb29yZHMoR1RLX1dJREdFVCh3ZWJWaWV3QmFzZSksIHgs
IHkpKTsKKyAgICBwcml2LT51cGRhdGVkU3ludGhUb3VjaEV2ZW50cy5hZGQoaW5kZXgpOworfQor
Cit2b2lkIHdlYmtpdFdlYlZpZXdCYXNlUmVsZWFzZVN5bnRoZXNpemVkVG91Y2hQb2ludChXZWJL
aXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGludCBpbmRleCkKK3sKKyAgICBXZWJLaXRXZWJW
aWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKKyAgICBBU1NFUlQoaW5k
ZXggPj0gMCAmJiBzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KSA8PSBwcml2LT5zeW50aFRvdWNo
RXZlbnRzLnNpemUoKSk7CisKKyAgICBhdXRvJiBvbGRFdmVudCA9IHByaXYtPnN5bnRoVG91Y2hF
dmVudHNbaW5kZXhdOworICAgIHByaXYtPnN5bnRoVG91Y2hFdmVudHNbaW5kZXhdID0gV2ViUGxh
dGZvcm1Ub3VjaFBvaW50KGluZGV4LCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFz
ZWQsIG9sZEV2ZW50LnBvc2l0aW9uKCksIG9sZEV2ZW50LnNjcmVlblBvc2l0aW9uKCkpOworICAg
IHByaXYtPnVwZGF0ZWRTeW50aFRvdWNoRXZlbnRzLmFkZChpbmRleCk7Cit9CisKK3ZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VDYW5jZWxTeW50aGVzaXplZFRvdWNoUG9pbnQoV2ViS2l0V2ViVmlld0Jh
c2UqIHdlYlZpZXdCYXNlLCBpbnQgaW5kZXgpCit7CisgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CisgICAgQVNTRVJUKGluZGV4ID49IDAgJiYg
c3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPD0gcHJpdi0+c3ludGhUb3VjaEV2ZW50cy5zaXpl
KCkpOworCisgICAgYXV0byYgb2xkRXZlbnQgPSBwcml2LT5zeW50aFRvdWNoRXZlbnRzW2luZGV4
XTsKKyAgICBwcml2LT5zeW50aFRvdWNoRXZlbnRzW2luZGV4XSA9IFdlYlBsYXRmb3JtVG91Y2hQ
b2ludChpbmRleCwgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaENhbmNlbGxlZCwgb2xkRXZl
bnQucG9zaXRpb24oKSwgb2xkRXZlbnQuc2NyZWVuUG9zaXRpb24oKSk7CisgICAgcHJpdi0+dXBk
YXRlZFN5bnRoVG91Y2hFdmVudHMuYWRkKGluZGV4KTsKK30KKwordm9pZCB3ZWJraXRXZWJWaWV3
QmFzZUNsZWFyU3ludGhlc2l6ZWRUb3VjaFBvaW50cyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmll
d0Jhc2UpCit7CisgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jh
c2UtPnByaXY7CisgICAgcHJpdi0+c3ludGhUb3VjaEV2ZW50cy5jbGVhcigpOworICAgIHByaXYt
PnVwZGF0ZWRTeW50aFRvdWNoRXZlbnRzLmNsZWFyKCk7Cit9CisKK3N0YXRpYyBWZWN0b3I8V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50PiBnZXRVcGRhdGVkU3ludGhUb3VjaEV2ZW50cyhXZWJLaXRXZWJW
aWV3QmFzZSogd2ViVmlld0Jhc2UpCit7CisgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBw
cml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CisgICAgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2lu
dD4gZXZlbnRzOworICAgIGZvciAoYXV0byBpZCA6IHByaXYtPnVwZGF0ZWRTeW50aFRvdWNoRXZl
bnRzKQorICAgICAgICBldmVudHMuYXBwZW5kKHByaXYtPnN5bnRoVG91Y2hFdmVudHNbaWRdKTsK
KyAgICByZXR1cm4gZXZlbnRzOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVVcGRhdGVkU3ludGhU
b3VjaEV2ZW50cyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCit7CisgICAgV2ViS2l0
V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CisgICAgZm9yIChh
dXRvIGlkIDogcHJpdi0+dXBkYXRlZFN5bnRoVG91Y2hFdmVudHMpCisgICAgICAgIHByaXYtPnN5
bnRoVG91Y2hFdmVudHNbaWRdLnNldFN0YXRlKFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hT
dGF0aW9uYXJ5KTsKKyAgICBwcml2LT5zeW50aFRvdWNoRXZlbnRzLnJlbW92ZUFsbE1hdGNoaW5n
KFtdIChhdXRvIHRvdWNoUG9pbnQpIHsKKyAgICAgICAgcmV0dXJuIHRvdWNoUG9pbnQuc3RhdGUo
KSA9PSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKKyAgICAgICAgfSk7
Cit9CisKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplVG91Y2hFdmVudChXZWJLaXRX
ZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIFRvdWNoRXZlbnRUeXBlIHR5cGUsIHVuc2lnbmVkIG1v
ZGlmaWVycykKK3sKKyAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3
QmFzZS0+cHJpdjsKKyAgICBXZWJFdmVudDo6VHlwZSBldmVudFR5cGUgPSBXZWJFdmVudDo6VHlw
ZTo6Tm9UeXBlOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgVG91Y2hFdmVudFR5cGU6
OlN0YXJ0OgorICAgICAgICBldmVudFR5cGUgPSBXZWJFdmVudDo6VHlwZTo6VG91Y2hTdGFydDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUb3VjaEV2ZW50VHlwZTo6TW92ZToKKyAgICAgICAg
ZXZlbnRUeXBlID0gV2ViRXZlbnQ6OlR5cGU6OlRvdWNoTW92ZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBUb3VjaEV2ZW50VHlwZTo6RW5kOgorICAgICAgICBldmVudFR5cGUgPSBXZWJFdmVu
dDo6VHlwZTo6VG91Y2hFbmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVG91Y2hFdmVudFR5
cGU6OkNhbmNlbDoKKyAgICAgICAgZXZlbnRUeXBlID0gV2ViRXZlbnQ6OlR5cGU6OlRvdWNoQ2Fu
Y2VsOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcHJpdi0+cGFnZVByb3h5LT5o
YW5kbGVUb3VjaEV2ZW50KE5hdGl2ZVdlYlRvdWNoRXZlbnQoZXZlbnRUeXBlLCBnZXRVcGRhdGVk
U3ludGhUb3VjaEV2ZW50cyh3ZWJWaWV3QmFzZSksIHRvV2ViS2l0TW9kaWZpZXJzKG1vZGlmaWVy
cykpKTsKKyAgICBpZiAodHlwZSA9PSBUb3VjaEV2ZW50VHlwZTo6RW5kIHx8IHR5cGUgPT0gVG91
Y2hFdmVudFR5cGU6OkNhbmNlbCkKKyAgICAgICAgcmVtb3ZlVXBkYXRlZFN5bnRoVG91Y2hFdmVu
dHMod2ViVmlld0Jhc2UpOworICAgIHByaXYtPnVwZGF0ZWRTeW50aFRvdWNoRXZlbnRzLmNsZWFy
KCk7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCiB2b2lkIHdlYmtpdFdl
YlZpZXdCYXNlU2V0RW5hYmxlQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZShXZWJLaXRXZWJW
aWV3QmFzZSogd2ViVmlld0Jhc2UsIGJvb2wgZW5hYmxlZCkKQEAgLTI3MjQsMjIgKzI4MzYsNiBA
QCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZUNvbXBvc2l0aW9uS2V5UHJlc3MoV2Vi
S2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYQogICAgIHdlYlZpZXdCYXNlLT5wcml2LT5wYWdlUHJv
eHktPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0ZXh0LCBXVEZN
b3ZlKHVuZGVybGluZXMpLCBXVEZNb3ZlKHNlbGVjdGlvblJhbmdlKSkpOwogfQogCi1zdGF0aWMg
aW5saW5lIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IHRvV2ViS2l0TW9kaWZpZXJzKHVu
c2lnbmVkIG1vZGlmaWVycykKLXsKLSAgICBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiB3
ZWJFdmVudE1vZGlmaWVyczsKLSAgICBpZiAobW9kaWZpZXJzICYgR0RLX0NPTlRST0xfTUFTSykK
LSAgICAgICAgd2ViRXZlbnRNb2RpZmllcnMuYWRkKFdlYkV2ZW50OjpNb2RpZmllcjo6Q29udHJv
bEtleSk7Ci0gICAgaWYgKG1vZGlmaWVycyAmIEdES19TSElGVF9NQVNLKQotICAgICAgICB3ZWJF
dmVudE1vZGlmaWVycy5hZGQoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7Ci0gICAgaWYg
KG1vZGlmaWVycyAmIEdES19NT0QxX01BU0spCi0gICAgICAgIHdlYkV2ZW50TW9kaWZpZXJzLmFk
ZChXZWJFdmVudDo6TW9kaWZpZXI6OkFsdEtleSk7Ci0gICAgaWYgKG1vZGlmaWVycyAmIEdES19N
RVRBX01BU0spCi0gICAgICAgIHdlYkV2ZW50TW9kaWZpZXJzLmFkZChXZWJFdmVudDo6TW9kaWZp
ZXI6Ok1ldGFLZXkpOwotICAgIGlmIChQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Om1vZGlmaWVyc0Nv
bnRhaW5DYXBzTG9jayhtb2RpZmllcnMpKQotICAgICAgICB3ZWJFdmVudE1vZGlmaWVycy5hZGQo
V2ViRXZlbnQ6Ok1vZGlmaWVyOjpDYXBzTG9ja0tleSk7Ci0gICAgcmV0dXJuIHdlYkV2ZW50TW9k
aWZpZXJzOwotfQotCiBzdGF0aWMgaW5saW5lIFBvaW50ZXJJRCBwcmltYXJ5UG9pbnRlckZvclR5
cGUoY29uc3QgU3RyaW5nJiBwb2ludGVyVHlwZSkKIHsKICAgICBpZiAocG9pbnRlclR5cGUgPT0g
bW91c2VQb2ludGVyRXZlbnRUeXBlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5hbC5oCmluZGV4IGY1ZDIz
Mzc4YTYwNmRkOGNhNzQxYWExYmY3YjJkYmZhNGE1MzM2M2YuLjk3M2RmMjQxYWVmZjA2ZGQ5ZTVj
MGQwNjI1ODEzMDQ0ZTQxOGE4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5hbC5oCkBAIC00NSwzICs0
NSwxNCBAQCBXS19FWFBPUlQgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVLZXlFdmVu
dChXZWJLaXRXZWJWaWV3QmFzZSosIEtleUV2ZW50VAogCiBlbnVtIGNsYXNzIFdoZWVsRXZlbnRQ
aGFzZSB7IE5vUGhhc2UsIEJlZ2FuLCBDaGFuZ2VkLCBFbmRlZCwgQ2FuY2VsbGVkLCBNYXlCZWdp
biB9OwogV0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVu
dChXZWJLaXRXZWJWaWV3QmFzZSosIGRvdWJsZSBkZWx0YVgsIGRvdWJsZSBkZWx0YVksIGludCB4
LCBpbnQgeSwgV2hlZWxFdmVudFBoYXNlLCBXaGVlbEV2ZW50UGhhc2UgbW9tZW50dW1QaGFzZSk7
CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorV0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VBZGRTeW50aGVzaXplZFRvdWNoUG9pbnQoV2ViS2l0V2ViVmlld0Jhc2UqLCBpbnQgeCwg
aW50IHkpOworV0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VVcGRhdGVTeW50aGVzaXpl
ZFRvdWNoUG9pbnQoV2ViS2l0V2ViVmlld0Jhc2UqLCBpbnQgaW5kZXgsIGludCB4LCBpbnQgeSk7
CitXS19FWFBPUlQgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVJlbGVhc2VTeW50aGVzaXplZFRvdWNo
UG9pbnQoV2ViS2l0V2ViVmlld0Jhc2UqLCBpbnQgaW5kZXgpOworV0tfRVhQT1JUIHZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VDYW5jZWxTeW50aGVzaXplZFRvdWNoUG9pbnQoV2ViS2l0V2ViVmlld0Jh
c2UqLCBpbnQgaW5kZXgpOworV0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VDbGVhclN5
bnRoZXNpemVkVG91Y2hQb2ludHMoV2ViS2l0V2ViVmlld0Jhc2UqKTsKKworZW51bSBjbGFzcyBU
b3VjaEV2ZW50VHlwZSB7IFN0YXJ0LCBNb3ZlLCBFbmQsIENhbmNlbCB9OworV0tfRVhQT1JUIHZv
aWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplVG91Y2hFdmVudChXZWJLaXRXZWJWaWV3QmFz
ZSosIFRvdWNoRXZlbnRUeXBlLCB1bnNpZ25lZCBtb2RpZmllcnMpOworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWQ4YjdkMjlhMDM5
OTlkM2JkMzhhYzU2NjE5NjVhMmQ3MTQxZjBlYi4uZGNhMDM5YmY2MzNiZTIxMDA0NDgwMTRmOTM1
MDg3ZWYzM2VjY2JlNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA5LTA2ICBDaHJpcyBMb3JkICA8Y2xvcmRA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBFdmVudFNlbmRlclByb3h5R3RrIGRvZXMgbm90
IGltcGxlbWVudCB0b3VjaCBldmVudCBzeW50aGVzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTU1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0b3VjaC1yZWxhdGVkIGZ1bmN0aW9u
cyBpbiBHVEsgRXZlbnRTZW5kZXJQcm94eS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
RXZlbnRTZW5kZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50
U2VuZGVyUHJveHlHdGsuY3BwOgorICAgICAgICAoV1RSOjp0b1dlYktpdEdMaWJBUEkpOgorICAg
ICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp+RXZlbnRTZW5kZXJQcm94eSk6CisgICAgICAg
IChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OmFkZFRvdWNoUG9pbnQpOgorICAgICAgICAoV1RSOjpF
dmVudFNlbmRlclByb3h5Ojp1cGRhdGVUb3VjaFBvaW50KToKKyAgICAgICAgKFdUUjo6RXZlbnRT
ZW5kZXJQcm94eTo6dG91Y2hTdGFydCk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6
OnRvdWNoTW92ZSk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnRvdWNoRW5kKToK
KyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6dG91Y2hDYW5jZWwpOgorICAgICAgICAo
V1RSOjpFdmVudFNlbmRlclByb3h5OjpjbGVhclRvdWNoUG9pbnRzKToKKyAgICAgICAgKFdUUjo6
RXZlbnRTZW5kZXJQcm94eTo6cmVsZWFzZVRvdWNoUG9pbnQpOgorICAgICAgICAoV1RSOjpFdmVu
dFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50KToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5k
ZXJQcm94eTo6c2V0VG91Y2hQb2ludFJhZGl1cyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVy
UHJveHk6OnNldFRvdWNoTW9kaWZpZXIpOgorCiAyMDIxLTA4LTExICBMYXVybyBNb3VyYSAgPGxt
b3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIEhhbmRsZSBlc2NhcGUga2V5IGluIHdw
ZUtleVN5bUZvcktleVJlZgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVu
dFNlbmRlclByb3h5LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHku
aAppbmRleCAxOGZhODkyZTQyN2MwMDBjZDM1N2ZlMTFkODQ1ZWMyMDljZjIxMWQzLi43MmQ5Mzlm
NTdjMzU0OGM4NGRjNGY0YTJjMDliZjdjMzFiODBmMjc4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0V2ZW50U2VuZGVyUHJveHkuaApAQCAtMTMwLDYgKzEzMCw5IEBAIHByaXZhdGU6CiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgaW50IG1fZXZlbnROdW1iZXIgeyAwIH07CiAjZW5kaWYKKyNp
ZiBQTEFURk9STShHVEspCisgICAgV0tFdmVudE1vZGlmaWVycyBtX3RvdWNoTW9kaWZpZXJzIHsg
MCB9OworI2VuZGlmCiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHVpbnQzMl90IG1fYnV0dG9uU3Rh
dGUgeyAwIH07CiAgICAgVmVjdG9yPHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3PiBt
X3RvdWNoRXZlbnRzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZl
bnRTZW5kZXJQcm94eUd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNl
bmRlclByb3h5R3RrLmNwcAppbmRleCBhZmU4OWQyNTk5ZmVmZmM3MjliMjJkZTRlMWQ2YzM3NjJh
ZDRlZTAzLi43ZDQwZWE1Y2UyNzRhZjdjNjZlOGE4ZDA3ZGIzYzBkZDEwMmMzYTEwIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcApA
QCAtNzAsOCArNzAsMTQgQEAgRXZlbnRTZW5kZXJQcm94eTo6RXZlbnRTZW5kZXJQcm94eShUZXN0
Q29udHJvbGxlciogdGVzdENvbnRyb2xsZXIpCiB7CiB9CiAKK3N0YXRpYyBpbmxpbmUgV2ViS2l0
V2ViVmlld0Jhc2UqIHRvV2ViS2l0R0xpYkFQSShQbGF0Zm9ybVdLVmlldyB2aWV3KQoreworICAg
IHJldHVybiBjb25zdF9jYXN0PFdlYktpdFdlYlZpZXdCYXNlKj4ocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBXZWJLaXRXZWJWaWV3QmFzZSo+KHZpZXcpKTsKK30KKwogRXZlbnRTZW5kZXJQcm94eTo6
fkV2ZW50U2VuZGVyUHJveHkoKQogeworICAgIHdlYmtpdFdlYlZpZXdCYXNlQ2xlYXJTeW50aGVz
aXplZFRvdWNoUG9pbnRzKHRvV2ViS2l0R0xpYkFQSShtX3Rlc3RDb250cm9sbGVyLT5tYWluV2Vi
VmlldygpLT5wbGF0Zm9ybVZpZXcoKSkpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgZXZlbnRTZW5k
ZXJCdXR0b25Ub0dES0J1dHRvbih1bnNpZ25lZCBidXR0b24pCkBAIC0yMzIsMTEgKzIzOCw2IEBA
IHN0YXRpYyBpbnQgZ2V0R0RLS2V5U3ltRm9yS2V5UmVmKFdLU3RyaW5nUmVmIGtleVJlZiwgdW5z
aWduZWQgbG9jYXRpb24sIGd1aW50KiBtCiAgICAgcmV0dXJuIGdka191bmljb2RlX3RvX2tleXZh
bChzdGF0aWNfY2FzdDxndWludDMyPihidWZmZXIuZ2V0KClbMF0pKTsKIH0KIAotc3RhdGljIGlu
bGluZSBXZWJLaXRXZWJWaWV3QmFzZSogdG9XZWJLaXRHTGliQVBJKFBsYXRmb3JtV0tWaWV3IHZp
ZXcpCi17Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8V2ViS2l0V2ViVmlld0Jhc2UqPihyZWludGVy
cHJldF9jYXN0PGNvbnN0IFdlYktpdFdlYlZpZXdCYXNlKj4odmlldykpOwotfQotCiB2b2lkIEV2
ZW50U2VuZGVyUHJveHk6OmtleURvd24oV0tTdHJpbmdSZWYga2V5UmVmLCBXS0V2ZW50TW9kaWZp
ZXJzIHdrTW9kaWZpZXJzLCB1bnNpZ25lZCBsb2NhdGlvbikKIHsKICAgICBndWludCBtb2RpZmll
cnMgPSB3ZWJraXRNb2RpZmllcnNUb0dES01vZGlmaWVycyh3a01vZGlmaWVycyk7CkBAIC0zNTQs
NDggKzM1NSw2MiBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCBtaWxs
aXNlY29uZHMpCiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotdm9pZCBFdmVudFNlbmRl
clByb3h5OjphZGRUb3VjaFBvaW50KGludCwgaW50KQordm9pZCBFdmVudFNlbmRlclByb3h5Ojph
ZGRUb3VjaFBvaW50KGludCB4LCBpbnQgeSkKIHsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZUFkZFN5
bnRoZXNpemVkVG91Y2hQb2ludCh0b1dlYktpdEdMaWJBUEkobV90ZXN0Q29udHJvbGxlci0+bWFp
bldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkpLCB4LCB5KTsKIH0KIAotdm9pZCBFdmVudFNlbmRl
clByb3h5Ojp1cGRhdGVUb3VjaFBvaW50KGludCwgaW50LCBpbnQpCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OnVwZGF0ZVRvdWNoUG9pbnQoaW50IGluZGV4LCBpbnQgeCwgaW50IHkpCiB7CisgICAg
d2Via2l0V2ViVmlld0Jhc2VVcGRhdGVTeW50aGVzaXplZFRvdWNoUG9pbnQodG9XZWJLaXRHTGli
QVBJKG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpKSwgaW5k
ZXgsIHgsIHkpOwogfQogCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnRvdWNoU3RhcnQoKQogewor
ICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVRvdWNoRXZlbnQodG9XZWJLaXRHTGliQVBJ
KG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpKSwgVG91Y2hF
dmVudFR5cGU6OlN0YXJ0LCB3ZWJraXRNb2RpZmllcnNUb0dES01vZGlmaWVycyhtX3RvdWNoTW9k
aWZpZXJzKSk7CiB9CiAKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hNb3ZlKCkKIHsKKyAg
ICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVUb3VjaEV2ZW50KHRvV2ViS2l0R0xpYkFQSSht
X3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSksIFRvdWNoRXZl
bnRUeXBlOjpNb3ZlLCB3ZWJraXRNb2RpZmllcnNUb0dES01vZGlmaWVycyhtX3RvdWNoTW9kaWZp
ZXJzKSk7CiB9CiAKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hFbmQoKQogeworICAgIHdl
YmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVRvdWNoRXZlbnQodG9XZWJLaXRHTGliQVBJKG1fdGVz
dENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpKSwgVG91Y2hFdmVudFR5
cGU6OkVuZCwgd2Via2l0TW9kaWZpZXJzVG9HREtNb2RpZmllcnMobV90b3VjaE1vZGlmaWVycykp
OwogfQogCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnRvdWNoQ2FuY2VsKCkKIHsKKyAgICB3ZWJr
aXRXZWJWaWV3QmFzZVN5bnRoZXNpemVUb3VjaEV2ZW50KHRvV2ViS2l0R0xpYkFQSShtX3Rlc3RD
b250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSksIFRvdWNoRXZlbnRUeXBl
OjpDYW5jZWwsIHdlYmtpdE1vZGlmaWVyc1RvR0RLTW9kaWZpZXJzKG1fdG91Y2hNb2RpZmllcnMp
KTsKIH0KIAogdm9pZCBFdmVudFNlbmRlclByb3h5OjpjbGVhclRvdWNoUG9pbnRzKCkKIHsKKyAg
ICB3ZWJraXRXZWJWaWV3QmFzZUNsZWFyU3ludGhlc2l6ZWRUb3VjaFBvaW50cyh0b1dlYktpdEdM
aWJBUEkobV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkpKTsK
IH0KIAotdm9pZCBFdmVudFNlbmRlclByb3h5OjpyZWxlYXNlVG91Y2hQb2ludChpbnQpCit2b2lk
IEV2ZW50U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBvaW50KGludCBpbmRleCkKIHsKKyAgICB3
ZWJraXRXZWJWaWV3QmFzZVJlbGVhc2VTeW50aGVzaXplZFRvdWNoUG9pbnQodG9XZWJLaXRHTGli
QVBJKG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpKSwgaW5k
ZXgpOwogfQogCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNhbmNlbFRvdWNoUG9pbnQoaW50KQor
dm9pZCBFdmVudFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50KGludCBpbmRleCkKIHsKKyAg
ICB3ZWJraXRXZWJWaWV3QmFzZUNhbmNlbFN5bnRoZXNpemVkVG91Y2hQb2ludCh0b1dlYktpdEdM
aWJBUEkobV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkpLCBp
bmRleCk7CiB9CiAKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0VG91Y2hQb2ludFJhZGl1cyhp
bnQsIGludCkKIHsKKyAgICAvLyBQdXJwb3NlZnVsbHkgdW5pbXBsZW1lbnRlZCBhcyB0b3VjaCBw
b2ludCByYWRpdXMgaXNuJ3QgaW1wbGVtZW50ZWQgZm9yIHJlYWwgZXZlbnRzIHlldC4KIH0KIAot
dm9pZCBFdmVudFNlbmRlclByb3h5OjpzZXRUb3VjaE1vZGlmaWVyKFdLRXZlbnRNb2RpZmllcnMs
IGJvb2wpCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNldFRvdWNoTW9kaWZpZXIoV0tFdmVudE1v
ZGlmaWVycyBtb2RpZmllcnMsIGJvb2wgb24pCiB7CisgICAgaWYgKG9uKQorICAgICAgICBtX3Rv
dWNoTW9kaWZpZXJzIHw9IG1vZGlmaWVyczsKKyAgICBlbHNlCisgICAgICAgIG1fdG91Y2hNb2Rp
ZmllcnMgJj0gfm1vZGlmaWVyczsKIH0KICNlbmRpZiAvLyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYmQ2ZmIyOTZhMmI1MmEzMzFhMzhiODM2ODVhODc5YzllZjE1Y2NjYy4uN2NiYzAw
OTM1ZGNiMDE0NDk1NDVjNmRhMTQ0MmViNDA0ZGU4MTgzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIxLTA5LTA3ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBb
R1RLXSBFdmVudFNlbmRlclByb3h5R3RrIGRvZXMgbm90IGltcGxlbWVudCB0b3VjaCBldmVudCBz
eW50aGVzaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyOTU1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucyBub3cgRXZlbnRTZW5kZXJQcm94eUdUSyBpbXBsZW1l
bnRzIHRvdWNoIGV2ZW50cy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1zaW5n
bGUtdG91Y2gtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL2Zhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisKIDIwMjEtMDgtMTEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBDaGVycnktcGljayBBTkdMRTogUmV2aXNlIFdlYkdMJ3Mgc2hh
ZGVyU291cmNlIHZhbGlkYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggMjhiMjVkNmY4YmFmNTk3OGM1ODQwZWZlMDcyMmU2MTYwZjU1NzJlMC4uY2Fh
ZDc5YTVmOWFkYTk0OGNkY2Y3Mzg1ZjkwOWIwODg0YmVjYWYzOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU4NCwxMCArNTg0LDQxIEBAIGVkaXRpbmcv
aW5zZXJ0aW5nL3NtYXJ0LXF1b3RlLXdpdGgtYWxsLWNvbmZpZ3VyYXRpb25zLmh0bWwgWyBTa2lw
IF0KICMgVGVzdHMgaW4gdGhlIGdlc3R1cmUgZm9sZGVyIGV4ZXJjaXNlIElPUy1zcGVjaWZpYyBj
b2RlLCBub24gYXBwbGlhYmxlIHRvIEdUSysKIGZhc3QvZXZlbnRzL3RvdWNoL2dlc3R1cmUgWyBT
a2lwIF0KIGZhc3Qvc2hhZG93LWRvbS90b3VjaC1ldmVudC1vbi10ZXh0LWFzc2lnbmVkLXRvLXNs
b3QuaHRtbCBbIFNraXAgXQotCi0jIFRoZXNlIHRlc3RzIHJlcXVpcmUgdG91Y2ggc3VwcG9ydAot
ZmFzdC9ldmVudHMvdG91Y2ggWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG91Y2gtZXZlbnRzIFsgU2tpcCBdCitmYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVh
dGUtdG91Y2gtbGlzdC1pb3MuaHRtbCBbIFNraXAgXQorZmFzdC9ldmVudHMvdG91Y2gvZ2VzdHVy
ZS1ldmVudC1iYXNpYy5odG1sIFsgU2tpcCBdCitmYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxl
ZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWwgWyBTa2lwIF0KKworIyBUaGVyZSBhcmUgc29tZSB1
bmRpYWdub3NlZCBwcm9ibGVtcyB3aXRoIHRvdWNoIGV2ZW50cword2Via2l0Lm9yZy9iLzIyOTk5
OCBmYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10b3VjaC1ldmVudHMuaHRtbCBbIEZhaWx1
cmUgXQord2Via2l0Lm9yZy9iLzIyOTk5OCBmYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10
b3VjaC1ldmVudHMtbGltaXRlZC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjI5OTk4
IGZhc3QvZXZlbnRzL3RvdWNoL2VtdWxhdGUtdG91Y2gtZXZlbnRzLmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmtpdC5vcmcvYi8yMjk5OTggZmFzdC9ldmVudHMvdG91Y2gvZnJhbWUtaG92ZXItdXBkYXRl
Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMjk5OTggZmFzdC9ldmVudHMvdG91Y2gv
bXVsdGktdG91Y2gtaW5zaWRlLWlmcmFtZXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9i
LzIyOTk5OCBmYXN0L2V2ZW50cy90b3VjaC9tdWx0aS10b3VjaC1pbnNpZGUtbmVzdGVkLWlmcmFt
ZXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIyOTk5OCBmYXN0L2V2ZW50cy90b3Vj
aC9vbnRvdWNoc3RhcnQtYWN0aXZlLXNlbGVjdG9yLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5v
cmcvYi8yMjk5OTggZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtZXZlbnQtZnJhbWVzLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMjk5OTggZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtZXZl
bnQtcGFnZVhZLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMjk5OTggZmFzdC9ldmVu
dHMvdG91Y2gvdG91Y2gtaGFuZGxlci1jb3VudC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3Jn
L2IvMjI5OTk4IGZhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLWlucHV0LWVsZW1lbnQtY2hhbmdlLWRv
Y3VtZW50cy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjI5OTk4IGZhc3QvZXZlbnRz
L3RvdWNoL3RvdWNoLXNsaWRlci5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjI5OTk4
IGZhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLXNsaWRlci1uby1qcy10b3VjaC1saXN0ZW5lci5odG1s
IFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjI5OTk4IGZhc3QvZXZlbnRzL3RvdWNoL3RvdWNo
LXN0YWxlLW5vZGUtY3Jhc2guaHRtbCBbIFRpbWVvdXQgXQord2Via2l0Lm9yZy9iLzIyOTk5OCBm
YXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQuaHRtbCBbIFRpbWVvdXQgXQord2Via2l0Lm9y
Zy9iLzIyOTk5OCBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtbGltaXRlZC5odG1sIFsg
RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjI5OTk4IGZhc3QvZXZlbnRzL3RvdWNoL3pvb21lZC10
b3VjaC1ldmVudC1wYWdlWFkuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIyOTk5OCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3RvdWNoLWV2ZW50cy9pZGxoYXJuZXNzLndp
bmRvdy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjI5OTk4IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG91Y2gtZXZlbnRzL3RvdWNoLWdsb2JhbGV2ZW50aGFuZGxlci1p
bnRlcmZhY2UuaHRtbCBbIEZhaWx1cmUgXQorCisjIEZhaWxzLCBhbmQgbm8gZXhwZWN0ZWQgcmVz
dWx0cyBmb3IgYW55IHBsYXRmb3JtIHByZXNlbnQKK3dlYmtpdC5vcmcvYi8xNjM4NTggZmFzdC9l
dmVudHMvdG91Y2gvdG91Y2gtY29uc3RydWN0b3IuaHRtbCBbIFNraXAgXQorCisjIFN0YXRpb25h
cnkgdG91Y2ggZXZlbnRzIGFyZSB1bmltcGxlbWVudGVkCit3ZWJraXQub3JnL2IvMjI5OTk4IGZh
c3QvZXZlbnRzL3RvdWNoL211bHRpLXRvdWNoLXNvbWUtd2l0aG91dC1oYW5kbGVycy5odG1sIFsg
U2tpcCBdCisKKyMgc2V0dGluZ3Muc2V0RGV2aWNlU3VwcG9ydHNNb3VzZSBpcyB1bmltcGxlbWVu
dGVkCit3ZWJraXQub3JnL2IvMjI5OTk4IGZhc3QvZXZlbnRzL3RvdWNoL3Njcm9sbC13aXRob3V0
LW1vdXNlLWxhY2tzLW1vdXNlbW92ZS1ldmVudHMuaHRtbCBbIFNraXAgXQorCisjaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b3VjaC1ldmVudHMgWyBTa2lwIF0KIAogIyBIaWdoRFBJ
IHN1cHBvcnQgaXMgbm90IGVuYWJsZWQKIHdlYmtpdC5vcmcvYi8xMzEzNDcgZmFzdC9mb3Jtcy9o
aWRwaS10ZXh0ZmllbGQtYmFja2dyb3VuZC1ibGVlZGluZy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9ldmVudHMvdG91
Y2gvYmFzaWMtc2luZ2xlLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtc2luZ2xlLXRvdWNoLWV2ZW50cy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkzNzhiYzEyODAwOTllNjA3YjJkNTNmNTNlYTliNzc4
YTZlZGZjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0
L2V2ZW50cy90b3VjaC9iYXNpYy1zaW5nbGUtdG91Y2gtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDg0IEBACitUaGlzIHRlc3RzIGJhc2ljIHNpbmdsZSB0b3VjaCBldmVudCBzdXBwb3J0
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBsYXN0RXZlbnQudHlwZSBp
cyAidG91Y2hzdGFydCIKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDEKK1BBU1Mg
bGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCitQQVNTIGxhc3RFdmVudC50YXJn
ZXRUb3VjaGVzLmxlbmd0aCBpcyAxCitQQVNTIGxhc3RFdmVudC5wYWdlWCBpcyAwCitQQVNTIGxh
c3RFdmVudC5wYWdlWSBpcyAwCitQQVNTIGxhc3RFdmVudC5zaGlmdEtleSBpcyBmYWxzZQorUEFT
UyBsYXN0RXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQgaXMgInRvdWNodGFyZ2V0IgorUEFTUyBs
YXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWCBpcyAxMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sw
XS5wYWdlWSBpcyAxMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQ
QVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLmNsaWVudFkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRv
dWNoZXNbMF0uaWRlbnRpZmllciBpcyAwCitGQUlMIGxhc3RFdmVudC50b3VjaGVzWzBdLndlYmtp
dFJhZGl1c1ggc2hvdWxkIGJlIDEwLiBXYXMgMC4KK0ZBSUwgbGFzdEV2ZW50LnRvdWNoZXNbMF0u
d2Via2l0UmFkaXVzWSBzaG91bGQgYmUgMTAuIFdhcyAwLgorUEFTUyBsYXN0RXZlbnQuY2hhbmdl
ZFRvdWNoZXNbMF0ucGFnZVggaXMgMTAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBd
LnBhZ2VZIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIGlz
IDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZIGlzIDEwCitQQVNT
IGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK0ZBSUwgbGFzdEV2
ZW50LmNoYW5nZWRUb3VjaGVzWzBdLndlYmtpdFJhZGl1c1ggc2hvdWxkIGJlIDEwLiBXYXMgMC4K
K0ZBSUwgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLndlYmtpdFJhZGl1c1kgc2hvdWxkIGJl
IDEwLiBXYXMgMC4KK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0ucGFnZVggaXMgMTAK
K1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0ucGFnZVkgaXMgMTAKK1BBU1MgbGFzdEV2
ZW50LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WCBpcyAxMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0
VG91Y2hlc1swXS5jbGllbnRZIGlzIDEwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBd
LmlkZW50aWZpZXIgaXMgMAorRkFJTCBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS53ZWJraXRS
YWRpdXNYIHNob3VsZCBiZSAxMC4gV2FzIDAuCitGQUlMIGxhc3RFdmVudC50YXJnZXRUb3VjaGVz
WzBdLndlYmtpdFJhZGl1c1kgc2hvdWxkIGJlIDEwLiBXYXMgMC4KK1BBU1MgbGFzdEV2ZW50LnR5
cGUgaXMgInRvdWNobW92ZSIKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDEKK1BB
U1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCitQQVNTIGxhc3RFdmVudC50
YXJnZXRUb3VjaGVzLmxlbmd0aCBpcyAxCitQQVNTIGxhc3RFdmVudC5wYWdlWCBpcyAwCitQQVNT
IGxhc3RFdmVudC5wYWdlWSBpcyAwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLnBhZ2VYIGlz
IDUwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLnBhZ2VZIGlzIDUwCitQQVNTIGxhc3RFdmVu
dC50b3VjaGVzWzBdLmNsaWVudFggaXMgNTAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xp
ZW50WSBpcyA1MAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK0ZB
SUwgbGFzdEV2ZW50LnRvdWNoZXNbMF0ud2Via2l0UmFkaXVzWCBzaG91bGQgYmUgMTIuIFdhcyAw
LgorRkFJTCBsYXN0RXZlbnQudG91Y2hlc1swXS53ZWJraXRSYWRpdXNZIHNob3VsZCBiZSAxMi4g
V2FzIDAuCitQQVNTIGxhc3RFdmVudC5zaGlmdEtleSBpcyB0cnVlCitQQVNTIGxhc3RFdmVudC5h
bHRLZXkgaXMgdHJ1ZQorUEFTUyBsYXN0RXZlbnQuY3RybEtleSBpcyBmYWxzZQorUEFTUyBsYXN0
RXZlbnQubWV0YUtleSBpcyBmYWxzZQorUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2hlbmQi
CitQQVNTIGxhc3RFdmVudC50b3VjaGVzLmxlbmd0aCBpcyAwCitQQVNTIGxhc3RFdmVudC5jaGFu
Z2VkVG91Y2hlcy5sZW5ndGggaXMgMQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlcy5sZW5n
dGggaXMgMAorUEFTUyBsYXN0RXZlbnQucGFnZVggaXMgMAorUEFTUyBsYXN0RXZlbnQucGFnZVkg
aXMgMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVggaXMgNTAKK1BBU1Mg
bGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZIGlzIDUwCitQQVNTIGxhc3RFdmVudC5j
aGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIGlzIDUwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91
Y2hlc1swXS5jbGllbnRZIGlzIDUwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5p
ZGVudGlmaWVyIGlzIDAKK0ZBSUwgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLndlYmtpdFJh
ZGl1c1ggc2hvdWxkIGJlIDEyLiBXYXMgMC4KK0ZBSUwgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVz
WzBdLndlYmtpdFJhZGl1c1kgc2hvdWxkIGJlIDEyLiBXYXMgMC4KK1BBU1MgbGFzdEV2ZW50LnNo
aWZ0S2V5IGlzIGZhbHNlCitQQVNTIGxhc3RFdmVudC5hbHRLZXkgaXMgZmFsc2UKK1BBU1MgbGFz
dEV2ZW50LnR5cGUgaXMgInRvdWNoc3RhcnQiCitQQVNTIGxhc3RFdmVudC50b3VjaGVzLmxlbmd0
aCBpcyAxCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggaXMgMQorUEFTUyBs
YXN0RXZlbnQudGFyZ2V0VG91Y2hlcy5sZW5ndGggaXMgMQorUEFTUyBsYXN0RXZlbnQucGFnZVgg
aXMgMAorUEFTUyBsYXN0RXZlbnQucGFnZVkgaXMgMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91
Y2hlc1swXS50YXJnZXQudGFnTmFtZSBpcyAiRElWIgorUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAi
dG91Y2htb3ZlIgorUEFTUyBsYXN0RXZlbnQudG91Y2hlcy5sZW5ndGggaXMgMQorUEFTUyBsYXN0
RXZlbnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoIGlzIDEKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRv
dWNoZXMubGVuZ3RoIGlzIDEKK1BBU1MgbGFzdEV2ZW50LnBhZ2VYIGlzIDAKK1BBU1MgbGFzdEV2
ZW50LnBhZ2VZIGlzIDAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0udGFyZ2V0LnRhZ05hbWUg
aXMgIkRJViIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9ldmVudHMvdG91
Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2Zhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWRjNWIyYjQ3MWQzOTVjMzAxNWU1MGMyYjQ2MzI1
MjJlOWE1Yjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zh
c3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDI0IEBACitUaGlzIHRlc3RzIHN1cHBvcnQgZm9yIHRoZSBkb2N1bWVudC5jcmVh
dGVUb3VjaExpc3QgQVBJLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAi
Y3JlYXRlVG91Y2hMaXN0IiBpbiBkb2N1bWVudCBpcyB0cnVlCitQQVNTIHRvdWNoTGlzdCBpcyBu
b24tbnVsbC4KK1BBU1MgdG91Y2hMaXN0Lmxlbmd0aCBpcyAwCitQQVNTIHRvdWNoTGlzdC5pdGVt
KDApIGlzIG51bGwKK1BBU1MgdG91Y2hMaXN0Lml0ZW0oMSkgaXMgbnVsbAorUEFTUyB0b3VjaExp
c3QuaXRlbSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRz
LgorUEFTUyB0cyBpbnN0YW5jZW9mIFRvdWNoRXZlbnQgaXMgdHJ1ZQorUEFTUyB0cy50b3VjaGVz
IGluc3RhbmNlb2YgVG91Y2hMaXN0IGlzIHRydWUKK1BBU1MgdHMudG91Y2hlcy5sZW5ndGggaXMg
MgorUEFTUyB0cy50b3VjaGVzWzBdIGluc3RhbmNlb2YgVG91Y2ggaXMgdHJ1ZQorUEFTUyB0cy50
b3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMTIzNDEKK1BBU1MgdHMudG91Y2hlc1swXS5jbGllbnRY
IGlzIDYwCitQQVNTIHRzLnRvdWNoZXNbMV0uc2NyZWVuWSBpcyAxMjAKK1BBU1MgdHMuY3RybEtl
eSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmNyZWF0ZVRvdWNoTGlzdCgxLCAyKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisK
</data>
<flag name="review"
          id="460676"
          type_id="1"
          status="?"
          setter="clord"
    />
          </attachment>
      

    </bug>

</bugzilla>