<?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>199803</bug_id>
          
          <creation_ts>2019-07-15 13:36:07 -0700</creation_ts>
          <short_desc>releasePointerCapture() not working for implicit capture; can&apos;t opt-in to pointerenter/leave for touches</short_desc>
          <delta_ts>2019-10-16 08:58:43 -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>UI Events</component>
          <version>Safari Technology Preview</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>ian</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>ap</cc>
    
    <cc>dino</cc>
    
    <cc>ggaren</cc>
    
    <cc>graouts</cc>
    
    <cc>ian</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1552943</commentid>
    <comment_count>0</comment_count>
      <attachid>374143</attachid>
    <who name="">ian</who>
    <bug_when>2019-07-15 13:36:07 -0700</bug_when>
    <thetext>Created attachment 374143
Example.

w3c pointer events specs 10.4 note that a dev can/should call releasePointerCapture(pid) just after pointerdown and before any other pointer events to opt-in to hit-testing any following touch-generated pointer events. Assumedly, opting-in would make touch pointers work more like mouse pointers in that enter/leave events would be dispatched while the primary button is pressed. In Chrome at least, this is what happens.

In iOS13 beta, calling releasePointerCapture(pid) does not result in his behavior. As such, there seems to be no way to opt-in to receiving pointerenter/leave events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553017</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-15 16:12:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/53127223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553193</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-07-16 08:46:36 -0700</bug_when>
    <thetext>Thanks for the report, I&apos;ll take look at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553534</commentid>
    <comment_count>3</comment_count>
    <who name="">ian</who>
    <bug_when>2019-07-17 09:08:31 -0700</bug_when>
    <thetext>Thank you!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570602</commentid>
    <comment_count>4</comment_count>
    <who name="">ian</who>
    <bug_when>2019-09-13 09:07:37 -0700</bug_when>
    <thetext>It looks like this issue (and maybe other PE issues?) is unresolved in iOS13 -but- PE is enabled by default. Because the browser indicates it supports PE, I have a polyfil (PEP) standing down and things are breaking. I&apos;m pretty sure I&apos;ll be able to get the polyfil to kick in, but there may be some users and authors in for a surprise. 

I&apos;m effectively a dilettante and can&apos;t make presumptions about priority, but PE is a bridge between user and interface — so if it misbehaves, a site could stop responding properly in real fundamental ways — on _just_ iOS. That&apos;s like, bad, right? 

Sorry if I&apos;m griping about some pet issue — web-tech is just tiring sometimes. 

Best</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570603</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-09-13 09:08:31 -0700</bug_when>
    <thetext>Could you give us an example of website that&apos;s broken due to this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570608</commentid>
    <comment_count>6</comment_count>
    <who name="">ian</who>
    <bug_when>2019-09-13 09:20:52 -0700</bug_when>
    <thetext>First, apologies -- I mistakenly thought iOS13 dropped and got real anxious, but I see it&apos;s not scheduled until the 19th. 

Second, I haven&apos;t had time to dig into what exactly is breaking and whether or not it&apos;s tied to this bug specifically, but I do know it&apos;s only apparent when doing touch input on iOS13 with native PE on (turn it off an things work fine, except for installed PWA). I can have more detailed info by Sunday. 

Site: http://sheets.flechs.net

Example of the specific interaction that&apos;s breaking: http://www.youtube.com/watch?v=uzn056QBLBc&amp;t=0m54s

Works on Desktop/Tablet Chrome, Desktop Safari (11-13), Mobile Safari (11-12), Firefox Desktop, but not Mobile Safari 13.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570610</commentid>
    <comment_count>7</comment_count>
    <who name="">ian</who>
    <bug_when>2019-09-13 09:22:28 -0700</bug_when>
    <thetext>( Slightly better example: https://www.youtube.com/watch?v=uzn056QBLBc&amp;t=0m44s )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570696</commentid>
    <comment_count>8</comment_count>
    <who name="">ian</who>
    <bug_when>2019-09-13 13:51:20 -0700</bug_when>
    <thetext>It looks like the example above is caused by a different PointerEvent issue regarding the buttons property. 
I&apos;ve filed it here: https://bugs.webkit.org/show_bug.cgi?id=201770</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571082</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-09-16 07:00:47 -0700</bug_when>
    <thetext>So we do account for releasePointerCapture() being called, but only partially. We&apos;ll dispatch pointermove and pointerup events correctly, but we fail to dispatch boundary events (pointerover, pointerout, pointerenter and pointerleave). We&apos;ll use this bug to track completion of non-capturing event dispatch on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572712</commentid>
    <comment_count>10</comment_count>
      <attachid>379229</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-09-20 03:46:13 -0700</bug_when>
    <thetext>Created attachment 379229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572713</commentid>
    <comment_count>11</comment_count>
      <attachid>379230</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-09-20 03:59:21 -0700</bug_when>
    <thetext>Created attachment 379230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573072</commentid>
    <comment_count>12</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-09-21 08:34:53 -0700</bug_when>
    <thetext>Committed r250182: &lt;https://trac.webkit.org/changeset/250182&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578716</commentid>
    <comment_count>13</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-10-10 10:34:59 -0700</bug_when>
    <thetext>This should be testable on the iOS 13.2 betas which are available to developers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580536</commentid>
    <comment_count>14</comment_count>
    <who name="">ian</who>
    <bug_when>2019-10-16 08:58:43 -0700</bug_when>
    <thetext>Can confirm this issue is fixed in 13.2! (Tested on 6th generation iPad.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>374143</attachid>
            <date>2019-07-15 13:36:07 -0700</date>
            <delta_ts>2019-07-15 13:36:07 -0700</delta_ts>
            <desc>Example.</desc>
            <filename>pointerover-test.html</filename>
            <type>text/html</type>
            <size>1090</size>
            <attacher>ian</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KCTx0aXRsZT48L3RpdGxlPgoJPHN0eWxlIHR5
cGU9InRleHQvY3NzIj4KCQlkaXZ7CgkJCXdpZHRoOjEwMHB4OwoJCQloZWlnaHQ6MTAwcHg7CgkJ
CWJhY2tncm91bmQtY29sb3I6IGJsYWNrOwkJCQoJCX0KCQkqeyB0b3VjaC1hY3Rpb246IG5vbmU7
IH0KCTwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+Cgk8ZGl2PjwvZGl2PgkKPC9ib2R5Pgo8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJCQkKCQl2YXIgY2FwdHVyZUlEID0gbnVsbDsKCQls
ZXQgZGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2IikKCQlkaXYuYWRkRXZlbnRMaXN0
ZW5lcigicG9pbnRlcmRvd24iLChlKT0+ewoJCQljb25zb2xlLmxvZygiZG93biIpCgkJCWNvbnNv
bGUubG9nKCJhdHRlbXB0IHJlbGVhc2UgY2FwdHVyZSIpCgkJCWRpdi5yZWxlYXNlUG9pbnRlckNh
cHR1cmUoZS5wb2ludGVySWQpCgkJCWRpdi5zdHlsZS5vcGFjaXR5ID0gMQoJCX0pCgkJZGl2LmFk
ZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJlbnRlciIsKGUpPT57CgkJCWNvbnNvbGUubG9nKCJlbnRl
ciIpCgkJCWRpdi5zdHlsZS5vcGFjaXR5ID0gMQoJCX0pCgkJZGl2LmFkZEV2ZW50TGlzdGVuZXIo
InBvaW50ZXJsZWF2ZSIsKGUpPT57CgkJCWNvbnNvbGUubG9nKCJsZWF2ZSIpCgkJCWRpdi5zdHls
ZS5vcGFjaXR5ID0gMC41CgkJfSkKCQkKCQlkaXYuYWRkRXZlbnRMaXN0ZW5lcigiZ290cG9pbnRl
cmNhcHR1cmUiLChlKT0+ewoJCQljb25zb2xlLmxvZygiY2FwdHVyZSIpCgkJfSkKCQlkaXYuYWRk
RXZlbnRMaXN0ZW5lcigibG9zdHBvaW50ZXJjYXB0dXJlIiwoZSk9PnsKCQkJY29uc29sZS5sb2co
Imxvc3QgY2FwdHVyZSIpCgkJCWNhcHR1cmVJRCA9IGUucG9pbnRlcklkCgkJfSkKCQlkaXYuYWRk
RXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLChlKT0+ewoJCQljb25zb2xlLmxvZygibW92ZSIp
CQkJCgkJCWlmKGNhcHR1cmVJRCl7CgkJCQljb25zb2xlLmxvZygiYXR0ZW1wdCByZWxlYXNlIixj
YXB0dXJlSUQpCgkJCQkKCQkJCWNhcHR1cmVJRCA9IG51bGwKCQkJfQoJCX0pCgk8L3NjcmlwdD4K
PC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379229</attachid>
            <date>2019-09-20 03:46:13 -0700</date>
            <delta_ts>2019-09-20 03:59:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199803-20190920124611.patch</filename>
            <type>text/plain</type>
            <size>21870</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNlZmIxZmU3MjA4NTZk
MmQzMTAzZDc0NDcwZDdjMDdiOTVkMDg3Zi4uMzQ1YjZiMThkOWNlMzY3YTIwZWJkMjY5ZGQ3Mzdm
YzM3YThhYTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA5LTIwICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgcmVsZWFzZVBvaW50ZXJD
YXB0dXJlKCkgbm90IHdvcmtpbmcgZm9yIGltcGxpY2l0IGNhcHR1cmU7IGNhbid0IG9wdC1pbiB0
byBwb2ludGVyZW50ZXIvbGVhdmUgZm9yIHRvdWNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTgwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTMxMjcyMjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW4gb3JkZXIgdG8gZGlzcGF0Y2ggYm91bmRhcnkgZXZlbnRzIChwb2ludGVyb3Zlci9vdXQv
ZW50ZXIvbGVhdmUpIHdoZW4gdGhlIGltcGxpY2l0IHBvaW50ZXIgY2FwdHVyZSBpcyByZWxlYXNl
ZCBvbiBpT1MsCisgICAgICAgIHdlIG5lZWQgdG8gdHJhY2sgdGhlIHRhcmdldCBvZiB0aGUgcG9p
bnRlciBldmVudHMgdGhhdCB3YXMgZGlzcGF0Y2hlZCBsYXN0IGZvciBhIGdpdmVuIHBvaW50ZXIg
aWQuIFRoZW4gd2UgY29tcGFyZSB0aGF0CisgICAgICAgIHRhcmdldCB3aXRoIHRoZSBjdXJyZW50
IHRhcmdldCB3aGVuIGRpc3BhdGNoaW5nIGEgbmV3IHBvaW50ZXIgZXZlbnQgYW5kIGRldGVybWlu
ZSB3aGV0aGVyIHdlIHNob3VsZCBkaXNwYXRjaCBib3VuZGFyeQorICAgICAgICBldmVudHMgdXNp
bmcgdGhlIGV4YWN0IHNhbWUgYXBwcm9hY2ggdXNlZCB0byBkaXNwYXRjaCBtb3VzZSBib3VuZGFy
eSBldmVudHMgaW4gRXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9kZSgpLgor
CisgICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy9ib3VuZGFyeS1ldmVudHMtdGhyb3Vn
aC1oaWVyYXJjaHktd2l0aG91dC1wb2ludGVyLWNhcHR1cmUuaHRtbAorICAgICAgICAgICAgICAg
cG9pbnRlcmV2ZW50cy9pb3MvYm91bmRhcnktZXZlbnRzLXdpdGhvdXQtcG9pbnRlci1jYXB0dXJl
Lmh0bWwKKworICAgICAgICAqIHBhZ2UvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmhpZXJhcmNoeUhhc0NhcHR1cmluZ0V2ZW50TGlzdGVuZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6ZGlzcGF0Y2hFdmVudEZv
clRvdWNoQXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpQb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXI6OnBvaW50ZXJFdmVudFdpbGxCZURpc3BhdGNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9p
bnRlckNhcHR1cmVDb250cm9sbGVyOjplbnN1cmVDYXB0dXJpbmdEYXRhRm9yUG9pbnRlckV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6Y2FuY2VsUG9p
bnRlcik6CisgICAgICAgICogcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaDoKKwogMjAx
OS0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklE
TF0gRGVyaXZlZCBkaWN0aW9uYXJpZXMgc2hvdWxkIGluaGVyaXQgdGhlaXIgaW5oZXJpdGVkIGRp
Y3Rpb25hcmllcycgcGFydGlhbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9p
bnRlckNhcHR1cmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckNh
cHR1cmVDb250cm9sbGVyLmNwcAppbmRleCAyZmExYjg3ZTk4YTJjY2QwMjIwMjJjOTkxYmE1MTVm
YjM2ZGJjZDVkLi41N2VmNTNkNTQ0NGU4Y2U0MGVjM2M1M2RhN2U2Y2ZiOWRjNDgxMWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuY3BwCkBA
IC0xODMsMTcgKzE4MywyOCBAQCBib29sIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6cHJldmVu
dHNDb21wYXRpYmlsaXR5TW91c2VFdmVudHNGb3JJZGVudGlmaWVyKFBvaQogfQogCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3N0YXRpYyBib29sIGhp
ZXJhcmNoeUhhc0NhcHR1cmluZ0V2ZW50TGlzdGVuZXJzKEVsZW1lbnQqIHRhcmdldCwgY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnROYW1lKQoreworICAgIGZvciAoQ29udGFpbmVyTm9kZSogY3VyciA9
IHRhcmdldDsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAg
ICAgICAgaWYgKGN1cnItPmhhc0NhcHR1cmluZ0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZSkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2
b2lkIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6ZGlzcGF0Y2hFdmVudEZvclRvdWNoQXRJbmRl
eChFdmVudFRhcmdldCYgdGFyZ2V0LCBjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIHBsYXRmb3Jt
VG91Y2hFdmVudCwgdW5zaWduZWQgaW5kZXgsIGJvb2wgaXNQcmltYXJ5LCBXaW5kb3dQcm94eSYg
dmlldykKIHsKLSAgICBhdXRvIGRpc3BhdGNoT3Zlck9yT3V0RXZlbnQgPSBbJl0oY29uc3QgU3Ry
aW5nJiB0eXBlKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoUG9pbnRlckV2ZW50OjpjcmVhdGUo
dHlwZSwgcGxhdGZvcm1Ub3VjaEV2ZW50LCBpbmRleCwgaXNQcmltYXJ5LCB2aWV3KSwgJnRhcmdl
dCk7CisgICAgQVNTRVJUKGlzPEVsZW1lbnQ+KHRhcmdldCkpOworCisgICAgYXV0byBkaXNwYXRj
aE92ZXJPck91dEV2ZW50ID0gWyZdKGNvbnN0IFN0cmluZyYgdHlwZSwgRXZlbnRUYXJnZXQqIHRh
cmdldCkgeworICAgICAgICBkaXNwYXRjaEV2ZW50KFBvaW50ZXJFdmVudDo6Y3JlYXRlKHR5cGUs
IHBsYXRmb3JtVG91Y2hFdmVudCwgaW5kZXgsIGlzUHJpbWFyeSwgdmlldyksIHRhcmdldCk7CiAg
ICAgfTsKIAotICAgIGF1dG8gZGlzcGF0Y2hFbnRlck9yTGVhdmVFdmVudCA9IFsmXShjb25zdCBT
dHJpbmcmIHR5cGUpIHsKLSAgICAgICAgaWYgKCFpczxFbGVtZW50PigmdGFyZ2V0KSkKKyAgICBh
dXRvIGRpc3BhdGNoRW50ZXJPckxlYXZlRXZlbnQgPSBbJl0oY29uc3QgU3RyaW5nJiB0eXBlLCBF
dmVudFRhcmdldCogdGFyZ2V0KSB7CisgICAgICAgIGlmICghaXM8RWxlbWVudD4odGFyZ2V0KSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBhdXRvKiB0YXJnZXRFbGVtZW50ID0gJmRv
d25jYXN0PEVsZW1lbnQ+KHRhcmdldCk7CisgICAgICAgIGF1dG8qIHRhcmdldEVsZW1lbnQgPSBk
b3duY2FzdDxFbGVtZW50Pih0YXJnZXQpOwogCiAgICAgICAgIGJvb2wgaGFzQ2FwdHVyaW5nTGlz
dGVuZXJJbkhpZXJhcmNoeSA9IGZhbHNlOwogICAgICAgICBmb3IgKENvbnRhaW5lck5vZGUqIGN1
cnIgPSB0YXJnZXRFbGVtZW50OyBjdXJyOyBjdXJyID0gY3Vyci0+cGFyZW50SW5Db21wb3NlZFRy
ZWUoKSkgewpAQCAtMjIwLDEyICsyMzEsNjMgQEAgdm9pZCBQb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXI6OmRpc3BhdGNoRXZlbnRGb3JUb3VjaEF0SW5kZXgoRXZlbnRUYXJnZXQmIHRhcmdldCwKIAog
ICAgIGF1dG8gcG9pbnRlckV2ZW50ID0gUG9pbnRlckV2ZW50OjpjcmVhdGUocGxhdGZvcm1Ub3Vj
aEV2ZW50LCBpbmRleCwgaXNQcmltYXJ5LCB2aWV3KTsKIAorICAgIGF1dG8mIGNhcHR1cmluZ0Rh
dGEgPSBlbnN1cmVDYXB0dXJpbmdEYXRhRm9yUG9pbnRlckV2ZW50KHBvaW50ZXJFdmVudCk7CisK
KyAgICAvLyBDaGVjayBpZiB0aGUgdGFyZ2V0IGNoYW5nZWQsIHdoaWNoIHdvdWxkIHJlcXVpcmUg
ZGlzcGF0Y2hpbmcgYm91bmRhcnkgZXZlbnRzLgorICAgIFJlZlB0cjxFbGVtZW50PiBwcmV2aW91
c1RhcmdldCA9IGNhcHR1cmluZ0RhdGEucHJldmlvdXNUYXJnZXQ7CisgICAgUmVmUHRyPEVsZW1l
bnQ+IGN1cnJlbnRUYXJnZXQgPSBkb3duY2FzdDxFbGVtZW50PigmdGFyZ2V0KTsKKworICAgIGNh
cHR1cmluZ0RhdGEucHJldmlvdXNUYXJnZXQgPSBjdXJyZW50VGFyZ2V0OworCisgICAgaWYgKHBv
aW50ZXJFdmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5wb2ludGVybW92ZUV2ZW50ICYmIHBy
ZXZpb3VzVGFyZ2V0ICE9IGN1cnJlbnRUYXJnZXQpIHsKKyAgICAgICAgLy8gVGhlIHBvaW50ZXJl
bnRlciBhbmQgcG9pbnRlcmxlYXZlIGV2ZW50cyBhcmUgb25seSBkaXNwYXRjaGVkIGlmIHRoZXJl
IGlzIGEgY2FwdHVyaW5nIGV2ZW50IGxpc3RlbmVyIG9uIGFuIGFuY2VzdG9yCisgICAgICAgIC8v
IG9yIGEgbm9ybWFsIGV2ZW50IGxpc3RlbmVyIG9uIHRoZSBlbGVtZW50IGl0c2VsZiBzaW5jZSB0
aG9zZSBldmVudHMgZG8gbm90IGJ1YmJsZS4KKyAgICAgICAgLy8gVGhpcyBvcHRpbWl6YXRpb24g
aXMgbmVjZXNzYXJ5IHNpbmNlIHRoZXNlIGV2ZW50cyBjYW4gY2F1c2UgTyhuXjIpIGNhcHR1cmlu
ZyBldmVudC1oYW5kbGVyIGNoZWNrcy4gVGhpcyBmb2xsb3dzIHRoZQorICAgICAgICAvLyBjb2Rl
IGZvciBzaW1pbGFyIG1vdXNlIGV2ZW50cyBpbiBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNlRXZl
bnRUYXJnZXROb2RlKCkuCisgICAgICAgIGJvb2wgaGFzQ2FwdHVyaW5nUG9pbnRlckVudGVyTGlz
dGVuZXIgPSBoaWVyYXJjaHlIYXNDYXB0dXJpbmdFdmVudExpc3RlbmVycyhjdXJyZW50VGFyZ2V0
LmdldCgpLCBldmVudE5hbWVzKCkucG9pbnRlcmVudGVyRXZlbnQpOworICAgICAgICBib29sIGhh
c0NhcHR1cmluZ1BvaW50ZXJMZWF2ZUxpc3RlbmVyID0gaGllcmFyY2h5SGFzQ2FwdHVyaW5nRXZl
bnRMaXN0ZW5lcnMocHJldmlvdXNUYXJnZXQuZ2V0KCksIGV2ZW50TmFtZXMoKS5wb2ludGVybGVh
dmVFdmVudCk7CisKKyAgICAgICAgVmVjdG9yPFJlZjxFbGVtZW50PiwgMzI+IGxlZnRFbGVtZW50
c0NoYWluOworICAgICAgICBmb3IgKEVsZW1lbnQqIGVsZW1lbnQgPSBwcmV2aW91c1RhcmdldC5n
ZXQoKTsgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2Vk
VHJlZSgpKQorICAgICAgICAgICAgbGVmdEVsZW1lbnRzQ2hhaW4uYXBwZW5kKCplbGVtZW50KTsK
KyAgICAgICAgVmVjdG9yPFJlZjxFbGVtZW50PiwgMzI+IGVudGVyZWRFbGVtZW50c0NoYWluOwor
ICAgICAgICBmb3IgKEVsZW1lbnQqIGVsZW1lbnQgPSBjdXJyZW50VGFyZ2V0LmdldCgpOyBlbGVt
ZW50OyBlbGVtZW50ID0gZWxlbWVudC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpCisg
ICAgICAgICAgICBlbnRlcmVkRWxlbWVudHNDaGFpbi5hcHBlbmQoKmVsZW1lbnQpOworCisgICAg
ICAgIGlmICghbGVmdEVsZW1lbnRzQ2hhaW4uaXNFbXB0eSgpICYmICFlbnRlcmVkRWxlbWVudHND
aGFpbi5pc0VtcHR5KCkgJiYgbGVmdEVsZW1lbnRzQ2hhaW4ubGFzdCgpLnB0cigpID09IGVudGVy
ZWRFbGVtZW50c0NoYWluLmxhc3QoKS5wdHIoKSkgeworICAgICAgICAgICAgc2l6ZV90IG1pbkhl
aWdodCA9IHN0ZDo6bWluKGxlZnRFbGVtZW50c0NoYWluLnNpemUoKSwgZW50ZXJlZEVsZW1lbnRz
Q2hhaW4uc2l6ZSgpKTsKKyAgICAgICAgICAgIHNpemVfdCBpOworICAgICAgICAgICAgZm9yIChp
ID0gMDsgaSA8IG1pbkhlaWdodDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGxlZnRFbGVt
ZW50c0NoYWluW2xlZnRFbGVtZW50c0NoYWluLnNpemUoKSAtIGkgLSAxXS5wdHIoKSAhPSBlbnRl
cmVkRWxlbWVudHNDaGFpbltlbnRlcmVkRWxlbWVudHNDaGFpbi5zaXplKCkgLSBpIC0gMV0ucHRy
KCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgbGVmdEVsZW1lbnRzQ2hhaW4uc2hyaW5rKGxlZnRFbGVtZW50c0NoYWluLnNpemUoKSAtIGkp
OworICAgICAgICAgICAgZW50ZXJlZEVsZW1lbnRzQ2hhaW4uc2hyaW5rKGVudGVyZWRFbGVtZW50
c0NoYWluLnNpemUoKSAtIGkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHByZXZpb3VzVGFy
Z2V0KQorICAgICAgICAgICAgZGlzcGF0Y2hPdmVyT3JPdXRFdmVudChldmVudE5hbWVzKCkucG9p
bnRlcm91dEV2ZW50LCBwcmV2aW91c1RhcmdldC5nZXQoKSk7CisKKyAgICAgICAgZm9yIChhdXRv
JiBjaGFpbiA6IGxlZnRFbGVtZW50c0NoYWluKSB7CisgICAgICAgICAgICBpZiAoaGFzQ2FwdHVy
aW5nUG9pbnRlckxlYXZlTGlzdGVuZXIgfHwgY2hhaW4tPmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50
TmFtZXMoKS5wb2ludGVybGVhdmVFdmVudCkpCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hFdmVu
dChQb2ludGVyRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucG9pbnRlcmxlYXZlRXZlbnQsIHBs
YXRmb3JtVG91Y2hFdmVudCwgaW5kZXgsIGlzUHJpbWFyeSwgdmlldyksIGNoYWluLnB0cigpKTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChjdXJyZW50VGFyZ2V0KQorICAgICAgICAgICAgZGlz
cGF0Y2hPdmVyT3JPdXRFdmVudChldmVudE5hbWVzKCkucG9pbnRlcm92ZXJFdmVudCwgY3VycmVu
dFRhcmdldC5nZXQoKSk7CisKKyAgICAgICAgZm9yIChhdXRvJiBjaGFpbiA6IFdURjo6bWFrZVJl
dmVyc2VkUmFuZ2UoZW50ZXJlZEVsZW1lbnRzQ2hhaW4pKSB7CisgICAgICAgICAgICBpZiAoaGFz
Q2FwdHVyaW5nUG9pbnRlckVudGVyTGlzdGVuZXIgfHwgY2hhaW4tPmhhc0V2ZW50TGlzdGVuZXJz
KGV2ZW50TmFtZXMoKS5wb2ludGVyZW50ZXJFdmVudCkpCisgICAgICAgICAgICAgICAgZGlzcGF0
Y2hFdmVudChQb2ludGVyRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucG9pbnRlcmVudGVyRXZl
bnQsIHBsYXRmb3JtVG91Y2hFdmVudCwgaW5kZXgsIGlzUHJpbWFyeSwgdmlldyksIGNoYWluLnB0
cigpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmIChwb2ludGVyRXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkucG9pbnRlcmRvd25FdmVudCkgewogICAgICAgICAvLyBodHRwczovL3cz
Yy5naXRodWIuaW8vcG9pbnRlcmV2ZW50cy8jdGhlLXBvaW50ZXJkb3duLWV2ZW50CiAgICAgICAg
IC8vIEZvciBpbnB1dCBkZXZpY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgaG92ZXIsIGEgdXNlciBh
Z2VudCBNVVNUIGFsc28gZmlyZSBhIHBvaW50ZXIgZXZlbnQgbmFtZWQgcG9pbnRlcm92ZXIgZm9s
bG93ZWQgYnkgYSBwb2ludGVyIGV2ZW50IG5hbWVkCiAgICAgICAgIC8vIHBvaW50ZXJlbnRlciBw
cmlvciB0byBkaXNwYXRjaGluZyB0aGUgcG9pbnRlcmRvd24gZXZlbnQuCi0gICAgICAgIGRpc3Bh
dGNoT3Zlck9yT3V0RXZlbnQoZXZlbnROYW1lcygpLnBvaW50ZXJvdmVyRXZlbnQpOwotICAgICAg
ICBkaXNwYXRjaEVudGVyT3JMZWF2ZUV2ZW50KGV2ZW50TmFtZXMoKS5wb2ludGVyZW50ZXJFdmVu
dCk7CisgICAgICAgIGRpc3BhdGNoT3Zlck9yT3V0RXZlbnQoZXZlbnROYW1lcygpLnBvaW50ZXJv
dmVyRXZlbnQsIGN1cnJlbnRUYXJnZXQuZ2V0KCkpOworICAgICAgICBkaXNwYXRjaEVudGVyT3JM
ZWF2ZUV2ZW50KGV2ZW50TmFtZXMoKS5wb2ludGVyZW50ZXJFdmVudCwgY3VycmVudFRhcmdldC5n
ZXQoKSk7CiAgICAgfQogCiAgICAgZGlzcGF0Y2hFdmVudChwb2ludGVyRXZlbnQsICZ0YXJnZXQp
OwpAQCAtMjM0LDggKzI5Niw5IEBAIHZvaWQgUG9pbnRlckNhcHR1cmVDb250cm9sbGVyOjpkaXNw
YXRjaEV2ZW50Rm9yVG91Y2hBdEluZGV4KEV2ZW50VGFyZ2V0JiB0YXJnZXQsCiAgICAgICAgIC8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wb2ludGVyZXZlbnRzLyN0aGUtcG9pbnRlcnVwLWV2ZW50
CiAgICAgICAgIC8vIEZvciBpbnB1dCBkZXZpY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgaG92ZXIs
IGEgdXNlciBhZ2VudCBNVVNUIGFsc28gZmlyZSBhIHBvaW50ZXIgZXZlbnQgbmFtZWQgcG9pbnRl
cm91dCBmb2xsb3dlZCBieSBhCiAgICAgICAgIC8vIHBvaW50ZXIgZXZlbnQgbmFtZWQgcG9pbnRl
cmxlYXZlIGFmdGVyIGRpc3BhdGNoaW5nIHRoZSBwb2ludGVydXAgZXZlbnQuCi0gICAgICAgIGRp
c3BhdGNoT3Zlck9yT3V0RXZlbnQoZXZlbnROYW1lcygpLnBvaW50ZXJvdXRFdmVudCk7Ci0gICAg
ICAgIGRpc3BhdGNoRW50ZXJPckxlYXZlRXZlbnQoZXZlbnROYW1lcygpLnBvaW50ZXJsZWF2ZUV2
ZW50KTsKKyAgICAgICAgZGlzcGF0Y2hPdmVyT3JPdXRFdmVudChldmVudE5hbWVzKCkucG9pbnRl
cm91dEV2ZW50LCBjdXJyZW50VGFyZ2V0LmdldCgpKTsKKyAgICAgICAgZGlzcGF0Y2hFbnRlck9y
TGVhdmVFdmVudChldmVudE5hbWVzKCkucG9pbnRlcmxlYXZlRXZlbnQsIGN1cnJlbnRUYXJnZXQu
Z2V0KCkpOworICAgICAgICBjYXB0dXJpbmdEYXRhLnByZXZpb3VzVGFyZ2V0ID0gbnVsbHB0cjsK
ICAgICB9CiB9CiAjZW5kaWYKQEAgLTMyNSwxMyArMzg4LDIwIEBAIHZvaWQgUG9pbnRlckNhcHR1
cmVDb250cm9sbGVyOjpwb2ludGVyRXZlbnRXaWxsQmVEaXNwYXRjaGVkKGNvbnN0IFBvaW50ZXJF
dmVudCYKICAgICAvLyByZWxlYXNlUG9pbnRlckNhcHR1cmUgaXMgbm90IGNhbGxlZCBmb3IgdGhl
IHBvaW50ZXIgYmVmb3JlIHRoZSBuZXh0IHBvaW50ZXIgZXZlbnQgaXMgZmlyZWQsIHRoZW4gYSBn
b3Rwb2ludGVyY2FwdHVyZSBldmVudCB3aWxsIGJlIGRpc3BhdGNoZWQKICAgICAvLyB0byB0aGUg
dGFyZ2V0IChhcyBub3JtYWwpIGluZGljYXRpbmcgdGhhdCBjYXB0dXJlIGlzIGFjdGl2ZS4KIAot
ICAgIENhcHR1cmluZ0RhdGEgY2FwdHVyaW5nRGF0YTsKLSAgICBjYXB0dXJpbmdEYXRhLnBvaW50
ZXJUeXBlID0gZXZlbnQucG9pbnRlclR5cGUoKTsKKyAgICBhdXRvJiBjYXB0dXJpbmdEYXRhID0g
ZW5zdXJlQ2FwdHVyaW5nRGF0YUZvclBvaW50ZXJFdmVudChldmVudCk7CiAgICAgY2FwdHVyaW5n
RGF0YS5wb2ludGVySXNQcmVzc2VkID0gdHJ1ZTsKLSAgICBtX2FjdGl2ZVBvaW50ZXJJZHNUb0Nh
cHR1cmluZ0RhdGEuc2V0KHBvaW50ZXJJZCwgY2FwdHVyaW5nRGF0YSk7CiAgICAgc2V0UG9pbnRl
ckNhcHR1cmUoZG93bmNhc3Q8RWxlbWVudD4odGFyZ2V0KSwgcG9pbnRlcklkKTsKIH0KIAorUG9p
bnRlckNhcHR1cmVDb250cm9sbGVyOjpDYXB0dXJpbmdEYXRhJiBQb2ludGVyQ2FwdHVyZUNvbnRy
b2xsZXI6OmVuc3VyZUNhcHR1cmluZ0RhdGFGb3JQb2ludGVyRXZlbnQoY29uc3QgUG9pbnRlckV2
ZW50JiBldmVudCkKK3sKKyAgICByZXR1cm4gbV9hY3RpdmVQb2ludGVySWRzVG9DYXB0dXJpbmdE
YXRhLmVuc3VyZShldmVudC5wb2ludGVySWQoKSwgWyZldmVudF0geworICAgICAgICBDYXB0dXJp
bmdEYXRhIGNhcHR1cmluZ0RhdGE7CisgICAgICAgIGNhcHR1cmluZ0RhdGEucG9pbnRlclR5cGUg
PSBldmVudC5wb2ludGVyVHlwZSgpOworICAgICAgICByZXR1cm4gY2FwdHVyaW5nRGF0YTsKKyAg
ICB9KS5pdGVyYXRvci0+dmFsdWU7Cit9CisKIHZvaWQgUG9pbnRlckNhcHR1cmVDb250cm9sbGVy
Ojpwb2ludGVyRXZlbnRXYXNEaXNwYXRjaGVkKGNvbnN0IFBvaW50ZXJFdmVudCYgZXZlbnQpCiB7
CiAgICAgYXV0byBpdGVyYXRvciA9IG1fYWN0aXZlUG9pbnRlcklkc1RvQ2FwdHVyaW5nRGF0YS5m
aW5kKGV2ZW50LnBvaW50ZXJJZCgpKTsKQEAgLTM5MCw2ICs0NjAsMTAgQEAgdm9pZCBQb2ludGVy
Q2FwdHVyZUNvbnRyb2xsZXI6OmNhbmNlbFBvaW50ZXIoUG9pbnRlcklEIHBvaW50ZXJJZCwgY29u
c3QgSW50UG9pbnQKICAgICBjYXB0dXJpbmdEYXRhLnBlbmRpbmdUYXJnZXRPdmVycmlkZSA9IG51
bGxwdHI7CiAgICAgY2FwdHVyaW5nRGF0YS5jYW5jZWxsZWQgPSB0cnVlOwogCisjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBjYXB0dXJpbmdEYXRh
LnByZXZpb3VzVGFyZ2V0ID0gbnVsbHB0cjsKKyNlbmRpZgorCiAgICAgYXV0byYgdGFyZ2V0ID0g
Y2FwdHVyaW5nRGF0YS50YXJnZXRPdmVycmlkZTsKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAg
dGFyZ2V0ID0gbV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRB
dFBvaW50KGRvY3VtZW50UG9pbnQsIEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RS
ZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dD
b250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQpLmlubmVyTm9u
U2hhcmVkRWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVy
Q2FwdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckNhcHR1cmVD
b250cm9sbGVyLmgKaW5kZXggZjQzYmRiNWM2OWViYTExM2M3YjY5ZWUxZjNjZWU2Y2IwZGYxZGRl
Mi4uMmM5Yzc2ZDA0NTEzZjViYzQ0OTc5MzZiNTMxNzU2YTQzZDcxZWFlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5oCkBAIC02Nyw2ICs2Nyw5
IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IENhcHR1cmluZ0RhdGEgewogICAgICAgICBSZWZQdHI8
RWxlbWVudD4gcGVuZGluZ1RhcmdldE92ZXJyaWRlOwogICAgICAgICBSZWZQdHI8RWxlbWVudD4g
dGFyZ2V0T3ZlcnJpZGU7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IHByZXZpb3VzVGFyZ2V0OworI2VuZGlm
CiAgICAgICAgIFN0cmluZyBwb2ludGVyVHlwZTsKICAgICAgICAgYm9vbCBjYW5jZWxsZWQgeyBm
YWxzZSB9OwogICAgICAgICBib29sIGlzUHJpbWFyeSB7IGZhbHNlIH07CkBAIC03NSw2ICs3OCw3
IEBAIHByaXZhdGU6CiAgICAgICAgIHNob3J0IHByZXZpb3VzTW91c2VCdXR0b24geyAtMSB9Owog
ICAgIH07CiAKKyAgICBDYXB0dXJpbmdEYXRhJiBlbnN1cmVDYXB0dXJpbmdEYXRhRm9yUG9pbnRl
ckV2ZW50KGNvbnN0IFBvaW50ZXJFdmVudCYpOwogICAgIHZvaWQgcG9pbnRlckV2ZW50V2lsbEJl
RGlzcGF0Y2hlZChjb25zdCBQb2ludGVyRXZlbnQmLCBFdmVudFRhcmdldCopOwogICAgIHZvaWQg
cG9pbnRlckV2ZW50V2FzRGlzcGF0Y2hlZChjb25zdCBQb2ludGVyRXZlbnQmKTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDU5ZDU0M2EzYTUxYTIwYTg2NDczMmUxZDYwZTVjYTM2NzUxYmI4ODMuLmQ4YjJhOTgxZDFmMDMz
YTAxOGQ3NGEyMzkwY2EyYjg4N2VkYzA5Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOS0w
OS0yMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIHJlbGVh
c2VQb2ludGVyQ2FwdHVyZSgpIG5vdCB3b3JraW5nIGZvciBpbXBsaWNpdCBjYXB0dXJlOyBjYW4n
dCBvcHQtaW4gdG8gcG9pbnRlcmVudGVyL2xlYXZlIGZvciB0b3VjaGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4MDMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzUzMTI3MjIzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBuZXcgdGVzdHMgdGhhdCBjaGVjayB3ZSBjb3JyZWN0bHkgZGlzcGF0
Y2ggYm91bmRhcnkgZXZlbnRzIG9uIGlPUyB3aGVuIHBvaW50ZXIgY2FwdHVyZSBpcyBkaXNhYmxl
ZC4KKworICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2ZW50cy10aHJvdWdo
LWhpZXJhcmNoeS13aXRob3V0LXBvaW50ZXItY2FwdHVyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2ZW50cy10aHJvdWdoLWhpZXJh
cmNoeS13aXRob3V0LXBvaW50ZXItY2FwdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2lu
dGVyZXZlbnRzL2lvcy9ib3VuZGFyeS1ldmVudHMtd2l0aG91dC1wb2ludGVyLWNhcHR1cmUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy9ib3VuZGFyeS1l
dmVudHMtd2l0aG91dC1wb2ludGVyLWNhcHR1cmUuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9p
bnRlcmV2ZW50cy91dGlscy5qczoKKwogMjAxOS0wOS0xNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlLXN5bmMgSFRNTCB3ZWItcGxhdGZvcm0tdGVzdHMgZnJv
bSB1cHN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvYm91
bmRhcnktZXZlbnRzLXRocm91Z2gtaGllcmFyY2h5LXdpdGhvdXQtcG9pbnRlci1jYXB0dXJlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2ZW50
cy10aHJvdWdoLWhpZXJhcmNoeS13aXRob3V0LXBvaW50ZXItY2FwdHVyZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWQwMWIwN2FhY2E0ZGYwZGRmZDZlZjA2YzFiOTY5Njk5Y2I2NWM1MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2
ZW50cy10aHJvdWdoLWhpZXJhcmNoeS13aXRob3V0LXBvaW50ZXItY2FwdHVyZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0ICJwb2ludGVyb3ZlciIsICJw
b2ludGVyZW50ZXIiLCAicG9pbnRlcm91dCIgYW5kICJwb2ludGVybGVhdmUiIGV2ZW50cyBhcmUg
ZGlzcGF0Y2hlZCBjb3JyZWN0bHkgd2l0aCBjYXB0dXJlIGRpc2FibGVkIGFzIGEgdG91Y2ggbW92
ZXMgYmV0d2VlbiBlbGVtZW50cyBpbiBhIGhpZXJhcmNoeS4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2ZW50cy10aHJvdWdoLWhpZXJhcmNo
eS13aXRob3V0LXBvaW50ZXItY2FwdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvYm91bmRhcnktZXZlbnRzLXRocm91Z2gtaGllcmFyY2h5LXdpdGhvdXQtcG9pbnRlci1j
YXB0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM3MmIyZTBiZjQyZmNlNGZiNWY1NmMwOTU5MTZiMzdj
OWQ2ZWRmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L2JvdW5kYXJ5LWV2ZW50cy10aHJvdWdoLWhpZXJhcmNoeS13aXRob3V0LXBvaW50ZXItY2FwdHVy
ZS5odG1sCkBAIC0wLDAgKzEsMTA3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxzdHlsZT4KKworYm9keSB7Cisg
ICAgLyogRW5zdXJlIHdlIGdldCBwb2ludGVyIGV2ZW50cyBmb3IgYWxsIHRvdWNoIGV2ZW50cy4g
Ki8KKyAgICB0b3VjaC1hY3Rpb246IG5vbmU7Cit9CisKKyNjb250YWluZXIsICNjb250YWluZXIg
ZGl2IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGhlaWdodDog
MTAwcHg7Cit9CisKKyNjb250YWluZXIgeworICAgIGxlZnQ6IDUwcHg7CisgICAgd2lkdGg6IDQw
MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOworfQorCisjbGVhZi1vbmUgeworICAg
IHdpZHRoOiAxMDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorCisjbmVzdGVk
LWNvbnRhaW5lciB7CisgICAgbGVmdDogMTUwcHg7CisgICAgd2lkdGg6IDI1MHB4OworICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworfQorCisjbmVzdGVkLWxlYWYtb25lIHsKKyAgICB3aWR0
aDogMTAwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcGluazsKK30KKworI25lc3RlZC1sZWFm
LXR3byB7CisgICAgbGVmdDogMTAwcHg7CisgICAgd2lkdGg6IDEwMHB4OworICAgIGJhY2tncm91
bmQtY29sb3I6IHllbGxvdzsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBp
ZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGlkPSJsZWFmLW9uZSI+PC9kaXY+CisgICAgPGRpdiBp
ZD0ibmVzdGVkLWNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgaWQ9Im5lc3RlZC1sZWFmLW9uZSI+
PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Im5lc3RlZC1sZWFmLXR3byI+PC9kaXY+CisgICAgPC9k
aXY+Cis8L2Rpdj4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3QodGVzdCA9PiB7CisgICAgY29u
c3QgZXZlbnRzTG9nID0gW107CisgICAgY29uc3QgbG9nZ2VyID0gZXZlbnQgPT4gZXZlbnRzTG9n
LnB1c2goYCR7ZXZlbnQudHlwZX1AJHtldmVudC5jdXJyZW50VGFyZ2V0LmlkfWApOworICAgIGZv
ciAobGV0IG5vZGUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGl2IikpIHsKKyAgICAg
ICAgZm9yIChsZXQgZXZlbnRUeXBlIG9mIFsicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwg
InBvaW50ZXJvdXQiLCAicG9pbnRlcmxlYXZlIl0pCisgICAgICAgICAgICBub2RlLmFkZEV2ZW50
TGlzdGVuZXIoZXZlbnRUeXBlLCBsb2dnZXIpOworICAgIH0KKworICAgIC8vIEVuc3VyZSB3ZSBk
aXNhYmxlIHBvaW50ZXIgY2FwdHVyZS4KKyAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVu
ZXIoInBvaW50ZXJkb3duIiwgZXZlbnQgPT4gZXZlbnQuY3VycmVudFRhcmdldC5yZWxlYXNlUG9p
bnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKSk7CisKKyAgICBjb25zdCBvbmUgPSB1aS5maW5n
ZXIoKTsKKyAgICB1aS5zZXF1ZW5jZShbCisgICAgICAgIG9uZS5iZWdpbih7IHg6IDEwLCB5OiA1
MCB9KSwgLy8gV2Ugc3RhcnQgb3V0c2lkZSBvZiB0aGUgYm91bmRzIG9mIGFueSA8ZGl2Pi4KKyAg
ICAgICAgb25lLm1vdmUoeyB4OiAxMDAsIHk6IDUwIH0pLCAvLyBTdGVwIDE6IHdlIGVudGVyIHRo
ZSBib3VuZHMgb2YgYm90aCAjY29udGFpbmVyIGFuZCAjbGVhZi1vbmUuCisgICAgICAgIG9uZS5t
b3ZlKHsgeDogMTYwLCB5OiA1MCB9KSwgLy8gU3RlcCAyOiB3ZSBsZWF2ZSB0aGUgYm91bmRzIG9m
ICNsZWFmLW9uZSwgcmVtYWluaW5nIHdpdGhpbiAjY29udGFpbmVyLgorICAgICAgICBvbmUubW92
ZSh7IHg6IDIxMCwgeTogNTAgfSksIC8vIFN0ZXAgMzogd2UgZW50ZXIgdGhlIGJvdW5kcyBvZiAj
bmVzdGVkLWNvbnRhaW5lciBhbmQgI25lc3RlZC1sZWFmLW9uZSwgcmVtYWluaW5nIHdpdGhpbiAj
Y29udGFpbmVyLgorICAgICAgICBvbmUubW92ZSh7IHg6IDMxMCwgeTogNTAgfSksIC8vIFN0ZXAg
NDogd2UgbGVhdmUgdGhlIGJvdW5kcyBvZiAjbmVzdGVkLWxlYWYtb25lIGFuZCBlbnRlciB0aGUg
Ym91bmRzIG9mICNuZXN0ZWQtbGVhZi10d28sIHJlbWFpbmluZyB3aXRoaW4gI25lc3RlZC1jb250
YWluZXIgYW5kICNjb250YWluZXIuCisgICAgICAgIG9uZS5tb3ZlKHsgeDogNDEwLCB5OiA1MCB9
KSwgLy8gU3RlcCA1OiB3ZSBsZWF2ZSB0aGUgYm91bmRzIG9mICNuZXN0ZWQtbGVhZi10d28sIHJl
bWFpbmluZyB3aXRoaW4gI25lc3RlZC1jb250YWluZXIgYW5kICNjb250YWluZXIuCisgICAgICAg
IG9uZS5tb3ZlKHsgeDogNDYwLCB5OiA1MCB9KSwgLy8gU3RlcCA2OiB3ZSBsZWF2ZSB0aGUgYm91
bmRzIG9mIGFueSA8ZGl2Pi4KKyAgICAgICAgb25lLmVuZCgpCisgICAgXSkudGhlbigoKSA9PiB7
CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZlbnRzTG9nLCBbCisgICAgICAgICAgICAv
LyBTdGVwIDEuCisgICAgICAgICAgICAicG9pbnRlcm92ZXJAbGVhZi1vbmUiLCAicG9pbnRlcm92
ZXJAY29udGFpbmVyIiwgInBvaW50ZXJlbnRlckBjb250YWluZXIiLCAicG9pbnRlcmVudGVyQGxl
YWYtb25lIiwKKyAgICAgICAgICAgIC8vIFN0ZXAgMi4KKyAgICAgICAgICAgICJwb2ludGVyb3V0
QGxlYWYtb25lIiwgInBvaW50ZXJvdXRAY29udGFpbmVyIiwgInBvaW50ZXJsZWF2ZUBsZWFmLW9u
ZSIsICJwb2ludGVyb3ZlckBjb250YWluZXIiLAorICAgICAgICAgICAgLy8gU3RlcCAzLgorICAg
ICAgICAgICAgInBvaW50ZXJvdXRAY29udGFpbmVyIiwgInBvaW50ZXJvdmVyQG5lc3RlZC1sZWFm
LW9uZSIsICJwb2ludGVyb3ZlckBuZXN0ZWQtY29udGFpbmVyIiwgInBvaW50ZXJvdmVyQGNvbnRh
aW5lciIsICJwb2ludGVyZW50ZXJAbmVzdGVkLWNvbnRhaW5lciIsICJwb2ludGVyZW50ZXJAbmVz
dGVkLWxlYWYtb25lIiwKKyAgICAgICAgICAgIC8vIFN0ZXAgNC4KKyAgICAgICAgICAgICJwb2lu
dGVyb3V0QG5lc3RlZC1sZWFmLW9uZSIsICJwb2ludGVyb3V0QG5lc3RlZC1jb250YWluZXIiLCAi
cG9pbnRlcm91dEBjb250YWluZXIiLCAicG9pbnRlcmxlYXZlQG5lc3RlZC1sZWFmLW9uZSIsICJw
b2ludGVyb3ZlckBuZXN0ZWQtbGVhZi10d28iLCAicG9pbnRlcm92ZXJAbmVzdGVkLWNvbnRhaW5l
ciIsICJwb2ludGVyb3ZlckBjb250YWluZXIiLCAicG9pbnRlcmVudGVyQG5lc3RlZC1sZWFmLXR3
byIsCisgICAgICAgICAgICAvLyBTdGVwIDUuCisgICAgICAgICAgICAicG9pbnRlcm91dEBuZXN0
ZWQtbGVhZi10d28iLCAicG9pbnRlcm91dEBuZXN0ZWQtY29udGFpbmVyIiwgInBvaW50ZXJvdXRA
Y29udGFpbmVyIiwgInBvaW50ZXJsZWF2ZUBuZXN0ZWQtbGVhZi10d28iLCAicG9pbnRlcm92ZXJA
bmVzdGVkLWNvbnRhaW5lciIsICJwb2ludGVyb3ZlckBjb250YWluZXIiLAorICAgICAgICAgICAg
Ly8gU3RlcCA2LgorICAgICAgICAgICAgInBvaW50ZXJvdXRAbmVzdGVkLWNvbnRhaW5lciIsICJw
b2ludGVyb3V0QGNvbnRhaW5lciIsICJwb2ludGVybGVhdmVAbmVzdGVkLWNvbnRhaW5lciIsICJw
b2ludGVybGVhdmVAY29udGFpbmVyIgorICAgICAgICBdKTsKKyAgICAgICAgdGVzdC5kb25lKCk7
CisgICAgfSk7Cit9LCBgVGVzdGluZyB0aGF0ICJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIi
LCAicG9pbnRlcm91dCIgYW5kICJwb2ludGVybGVhdmUiIGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBj
b3JyZWN0bHkgd2l0aCBjYXB0dXJlIGRpc2FibGVkIGFzIGEgdG91Y2ggbW92ZXMgYmV0d2VlbiBl
bGVtZW50cyBpbiBhIGhpZXJhcmNoeS5gKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvYm91bmRhcnktZXZlbnRzLXdpdGhvdXQtcG9pbnRlci1jYXB0dXJlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2ZW50
cy13aXRob3V0LXBvaW50ZXItY2FwdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZhYWIx
YWU4MGE4YzkyMzM1NTBkMDVmMTU0MTdhYTJlMjhkZWU4NgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2ZW50cy13aXRob3V0LXBvaW50
ZXItY2FwdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0
aGF0ICJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm91dCIgYW5kICJwb2lu
dGVybGVhdmUiIGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBjb3JyZWN0bHkgd2l0aCBjYXB0dXJlIGRp
c2FibGVkIGFzIGEgdG91Y2ggbW92ZXMgYmV0d2VlbiBlbGVtZW50cy4gCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2ZW50cy13aXRob3V0LXBv
aW50ZXItY2FwdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvYm91bmRh
cnktZXZlbnRzLXdpdGhvdXQtcG9pbnRlci1jYXB0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg3Nzhl
ZjNkN2FiOTA3NTJmODkwYmM1ZDA4MGNkMGQ3ZmM2ZmZhMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2ZW50cy13aXRob3V0LXBvaW50
ZXItY2FwdHVyZS5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisK
Kyd1c2Ugc3RyaWN0JzsKKworYXN5bmNfdGVzdCh0ZXN0ID0+IHsKKyAgICBjb25zdCBmaXJzdFRh
cmdldCA9IG1ha2VUYXJnZXQodGVzdCwgeyB4OiAiMTAwcHgiLCB5OiAiMTAwcHgiLCB3aWR0aDog
IjEwMHB4IiwgaGVpZ2h0OiAiMTAwcHgiIH0pOworICAgIGZpcnN0VGFyZ2V0LmlkID0gIm9uZSI7
CisKKyAgICBjb25zdCBzZWNvbmRUYXJnZXQgPSBtYWtlVGFyZ2V0KHRlc3QsIHsgeDogIjIwMHB4
IiwgeTogIjEwMHB4Iiwgd2lkdGg6ICIxMDBweCIsIGhlaWdodDogIjEwMHB4IiB9KTsKKyAgICBz
ZWNvbmRUYXJnZXQuaWQgPSAidHdvIjsKKworICAgIGNvbnN0IGV2ZW50c0xvZyA9IFtdOworICAg
IGNvbnN0IGxvZ2dlciA9IGV2ZW50ID0+IGV2ZW50c0xvZy5wdXNoKGAke2V2ZW50LnR5cGV9QCR7
ZXZlbnQuY3VycmVudFRhcmdldC5pZH1gKTsKKyAgICBmb3IgKGxldCBldmVudFR5cGUgb2YgWyJw
b2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm91dCIsICJwb2ludGVybGVhdmUi
XSkgeworICAgICAgICBmaXJzdFRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbG9n
Z2VyKTsKKyAgICAgICAgc2Vjb25kVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBs
b2dnZXIpOworICAgIH0KKworICAgIC8vIEVuc3VyZSB3ZSBnZXQgcG9pbnRlciBldmVudHMgZm9y
IGFsbCB0b3VjaCBldmVudHMuCisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS50b3VjaEFjdGlvbiA9
ICJub25lIjsKKworICAgIC8vIEVuc3VyZSB3ZSBkaXNhYmxlIHBvaW50ZXIgY2FwdHVyZS4KKyAg
ICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwgZXZlbnQgPT4g
ZXZlbnQuY3VycmVudFRhcmdldC5yZWxlYXNlUG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklk
KSk7CisKKyAgICBjb25zdCBvbmUgPSB1aS5maW5nZXIoKTsKKyAgICB1aS5zZXF1ZW5jZShbCisg
ICAgICAgIG9uZS5iZWdpbih7IHg6IDUwLCB5OiAxNTAgfSksCisgICAgICAgIG9uZS5tb3ZlKHsg
eDogMTUwLCB5OiAxNTAgfSksCisgICAgICAgIG9uZS5tb3ZlKHsgeDogMjUwLCB5OiAxNTAgfSks
CisgICAgICAgIG9uZS5tb3ZlKHsgeDogMzUwLCB5OiAxNTAgfSksCisgICAgICAgIG9uZS5lbmQo
KQorICAgIF0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50
c0xvZywgWyJwb2ludGVyb3ZlckBvbmUiLCAicG9pbnRlcmVudGVyQG9uZSIsICJwb2ludGVyb3V0
QG9uZSIsICJwb2ludGVybGVhdmVAb25lIiwgInBvaW50ZXJvdmVyQHR3byIsICJwb2ludGVyZW50
ZXJAdHdvIiwgInBvaW50ZXJvdXRAdHdvIiwgInBvaW50ZXJsZWF2ZUB0d28iXSk7CisgICAgICAg
IHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgYFRlc3RpbmcgdGhhdCAicG9pbnRlcm92ZXIiLCAi
cG9pbnRlcmVudGVyIiwgInBvaW50ZXJvdXQiIGFuZCAicG9pbnRlcmxlYXZlIiBldmVudHMgYXJl
IGRpc3BhdGNoZWQgY29ycmVjdGx5IHdpdGggY2FwdHVyZSBkaXNhYmxlZCBhcyBhIHRvdWNoIG1v
dmVzIGJldHdlZW4gZWxlbWVudHMuYCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL3V0aWxzLmpzCmlu
ZGV4IDZjZmMzYTlhMWM3YzZhN2IzZDg3NDI4NDI5MzlhMzNhNjM5YTFiN2MuLjE1YzM4ZjRiZDY1
MjY2YmZiOGUwNmVmZTk3OTM0YTNjYzg5MWRhNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvdXRpbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy91dGls
cy5qcwpAQCAtMTgsMjAgKzE4LDI0IEBAIGZ1bmN0aW9uIHRhcmdldF90ZXN0KC4uLmFyZ3MpCiAg
ICAgb3B0aW9ucy5oZWlnaHQgPSBvcHRpb25zLmhlaWdodCB8fCAiMTAwJSI7CiAKICAgICBhc3lu
Y190ZXN0KHRlc3QgPT4gewotICAgICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKLSAgICAgICAgdGFyZ2V0
LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBgCi0gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
Ci0gICAgICAgICAgICBsZWZ0OiAke29wdGlvbnMueH07Ci0gICAgICAgICAgICB0b3A6ICR7b3B0
aW9ucy55fTsKLSAgICAgICAgICAgIHdpZHRoOiAke29wdGlvbnMud2lkdGh9OwotICAgICAgICAg
ICAgaGVpZ2h0OiAke29wdGlvbnMuaGVpZ2h0fTsKLSAgICAgICAgYCk7Ci0gICAgICAgIHRlc3Qu
YWRkX2NsZWFudXAoKCkgPT4gdGFyZ2V0LnJlbW92ZSgpKTsKLQotICAgICAgICBjb250aW51dGF0
aW9uKHRhcmdldCwgdGVzdCk7CisgICAgICAgIGNvbnRpbnV0YXRpb24obWFrZVRhcmdldCh0ZXN0
LCBvcHRpb25zKSwgdGVzdCk7CiAgICAgfSwgZGVzY3JpcHRpb24pOwogfQogCitmdW5jdGlvbiBt
YWtlVGFyZ2V0KHRlc3QsIG9wdGlvbnMpCit7CisgICAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgdGFy
Z2V0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBgCisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICAgICAgbGVmdDogJHtvcHRpb25zLnh9OworICAgICAgICB0b3A6ICR7b3B0aW9ucy55fTsK
KyAgICAgICAgd2lkdGg6ICR7b3B0aW9ucy53aWR0aH07CisgICAgICAgIGhlaWdodDogJHtvcHRp
b25zLmhlaWdodH07CisgICAgYCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiB0YXJnZXQu
cmVtb3ZlKCkpOworICAgIHJldHVybiB0YXJnZXQ7Cit9CisKIGNsYXNzIEV2ZW50VHJhY2tlcgog
ewogICAgIGNvbnN0cnVjdG9yKHRhcmdldCwgZXZlbnROYW1lcykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379230</attachid>
            <date>2019-09-20 03:59:21 -0700</date>
            <delta_ts>2019-09-20 23:17:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199803-20190920125920.patch</filename>
            <type>text/plain</type>
            <size>21375</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNlZmIxZmU3MjA4NTZk
MmQzMTAzZDc0NDcwZDdjMDdiOTVkMDg3Zi4uMzQ1YjZiMThkOWNlMzY3YTIwZWJkMjY5ZGQ3Mzdm
YzM3YThhYTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA5LTIwICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgcmVsZWFzZVBvaW50ZXJD
YXB0dXJlKCkgbm90IHdvcmtpbmcgZm9yIGltcGxpY2l0IGNhcHR1cmU7IGNhbid0IG9wdC1pbiB0
byBwb2ludGVyZW50ZXIvbGVhdmUgZm9yIHRvdWNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTgwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTMxMjcyMjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW4gb3JkZXIgdG8gZGlzcGF0Y2ggYm91bmRhcnkgZXZlbnRzIChwb2ludGVyb3Zlci9vdXQv
ZW50ZXIvbGVhdmUpIHdoZW4gdGhlIGltcGxpY2l0IHBvaW50ZXIgY2FwdHVyZSBpcyByZWxlYXNl
ZCBvbiBpT1MsCisgICAgICAgIHdlIG5lZWQgdG8gdHJhY2sgdGhlIHRhcmdldCBvZiB0aGUgcG9p
bnRlciBldmVudHMgdGhhdCB3YXMgZGlzcGF0Y2hlZCBsYXN0IGZvciBhIGdpdmVuIHBvaW50ZXIg
aWQuIFRoZW4gd2UgY29tcGFyZSB0aGF0CisgICAgICAgIHRhcmdldCB3aXRoIHRoZSBjdXJyZW50
IHRhcmdldCB3aGVuIGRpc3BhdGNoaW5nIGEgbmV3IHBvaW50ZXIgZXZlbnQgYW5kIGRldGVybWlu
ZSB3aGV0aGVyIHdlIHNob3VsZCBkaXNwYXRjaCBib3VuZGFyeQorICAgICAgICBldmVudHMgdXNp
bmcgdGhlIGV4YWN0IHNhbWUgYXBwcm9hY2ggdXNlZCB0byBkaXNwYXRjaCBtb3VzZSBib3VuZGFy
eSBldmVudHMgaW4gRXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50VGFyZ2V0Tm9kZSgpLgor
CisgICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy9ib3VuZGFyeS1ldmVudHMtdGhyb3Vn
aC1oaWVyYXJjaHktd2l0aG91dC1wb2ludGVyLWNhcHR1cmUuaHRtbAorICAgICAgICAgICAgICAg
cG9pbnRlcmV2ZW50cy9pb3MvYm91bmRhcnktZXZlbnRzLXdpdGhvdXQtcG9pbnRlci1jYXB0dXJl
Lmh0bWwKKworICAgICAgICAqIHBhZ2UvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmhpZXJhcmNoeUhhc0NhcHR1cmluZ0V2ZW50TGlzdGVuZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6ZGlzcGF0Y2hFdmVudEZv
clRvdWNoQXRJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpQb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXI6OnBvaW50ZXJFdmVudFdpbGxCZURpc3BhdGNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6UG9p
bnRlckNhcHR1cmVDb250cm9sbGVyOjplbnN1cmVDYXB0dXJpbmdEYXRhRm9yUG9pbnRlckV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6Y2FuY2VsUG9p
bnRlcik6CisgICAgICAgICogcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaDoKKwogMjAx
OS0wOS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYklE
TF0gRGVyaXZlZCBkaWN0aW9uYXJpZXMgc2hvdWxkIGluaGVyaXQgdGhlaXIgaW5oZXJpdGVkIGRp
Y3Rpb25hcmllcycgcGFydGlhbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9p
bnRlckNhcHR1cmVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckNh
cHR1cmVDb250cm9sbGVyLmNwcAppbmRleCAyZmExYjg3ZTk4YTJjY2QwMjIwMjJjOTkxYmE1MTVm
YjM2ZGJjZDVkLi4yNmE5OGRmYmRlODdkNDllYjRlMmI5OWUxNTI0MTAwNGNkMzBkM2E0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuY3BwCkBA
IC0xODMsMTYgKzE4MywyNCBAQCBib29sIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6cHJldmVu
dHNDb21wYXRpYmlsaXR5TW91c2VFdmVudHNGb3JJZGVudGlmaWVyKFBvaQogfQogCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3N0YXRpYyBib29sIGhp
ZXJhcmNoeUhhc0NhcHR1cmluZ0V2ZW50TGlzdGVuZXJzKEVsZW1lbnQqIHRhcmdldCwgY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnROYW1lKQoreworICAgIGZvciAoQ29udGFpbmVyTm9kZSogY3VyciA9
IHRhcmdldDsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAg
ICAgICAgaWYgKGN1cnItPmhhc0NhcHR1cmluZ0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZSkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2
b2lkIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6ZGlzcGF0Y2hFdmVudEZvclRvdWNoQXRJbmRl
eChFdmVudFRhcmdldCYgdGFyZ2V0LCBjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIHBsYXRmb3Jt
VG91Y2hFdmVudCwgdW5zaWduZWQgaW5kZXgsIGJvb2wgaXNQcmltYXJ5LCBXaW5kb3dQcm94eSYg
dmlldykKIHsKLSAgICBhdXRvIGRpc3BhdGNoT3Zlck9yT3V0RXZlbnQgPSBbJl0oY29uc3QgU3Ry
aW5nJiB0eXBlKSB7Ci0gICAgICAgIGRpc3BhdGNoRXZlbnQoUG9pbnRlckV2ZW50OjpjcmVhdGUo
dHlwZSwgcGxhdGZvcm1Ub3VjaEV2ZW50LCBpbmRleCwgaXNQcmltYXJ5LCB2aWV3KSwgJnRhcmdl
dCk7CisgICAgQVNTRVJUKGlzPEVsZW1lbnQ+KHRhcmdldCkpOworCisgICAgYXV0byBkaXNwYXRj
aE92ZXJPck91dEV2ZW50ID0gWyZdKGNvbnN0IFN0cmluZyYgdHlwZSwgRXZlbnRUYXJnZXQqIHRh
cmdldCkgeworICAgICAgICBkaXNwYXRjaEV2ZW50KFBvaW50ZXJFdmVudDo6Y3JlYXRlKHR5cGUs
IHBsYXRmb3JtVG91Y2hFdmVudCwgaW5kZXgsIGlzUHJpbWFyeSwgdmlldyksIHRhcmdldCk7CiAg
ICAgfTsKIAogICAgIGF1dG8gZGlzcGF0Y2hFbnRlck9yTGVhdmVFdmVudCA9IFsmXShjb25zdCBT
dHJpbmcmIHR5cGUpIHsKLSAgICAgICAgaWYgKCFpczxFbGVtZW50PigmdGFyZ2V0KSkKLSAgICAg
ICAgICAgIHJldHVybjsKLQogICAgICAgICBhdXRvKiB0YXJnZXRFbGVtZW50ID0gJmRvd25jYXN0
PEVsZW1lbnQ+KHRhcmdldCk7CiAKICAgICAgICAgYm9vbCBoYXNDYXB0dXJpbmdMaXN0ZW5lcklu
SGllcmFyY2h5ID0gZmFsc2U7CkBAIC0yMjAsMTEgKzIyOCw2MiBAQCB2b2lkIFBvaW50ZXJDYXB0
dXJlQ29udHJvbGxlcjo6ZGlzcGF0Y2hFdmVudEZvclRvdWNoQXRJbmRleChFdmVudFRhcmdldCYg
dGFyZ2V0LAogCiAgICAgYXV0byBwb2ludGVyRXZlbnQgPSBQb2ludGVyRXZlbnQ6OmNyZWF0ZShw
bGF0Zm9ybVRvdWNoRXZlbnQsIGluZGV4LCBpc1ByaW1hcnksIHZpZXcpOwogCisgICAgYXV0byYg
Y2FwdHVyaW5nRGF0YSA9IGVuc3VyZUNhcHR1cmluZ0RhdGFGb3JQb2ludGVyRXZlbnQocG9pbnRl
ckV2ZW50KTsKKworICAgIC8vIENoZWNrIGlmIHRoZSB0YXJnZXQgY2hhbmdlZCwgd2hpY2ggd291
bGQgcmVxdWlyZSBkaXNwYXRjaGluZyBib3VuZGFyeSBldmVudHMuCisgICAgUmVmUHRyPEVsZW1l
bnQ+IHByZXZpb3VzVGFyZ2V0ID0gY2FwdHVyaW5nRGF0YS5wcmV2aW91c1RhcmdldDsKKyAgICBS
ZWZQdHI8RWxlbWVudD4gY3VycmVudFRhcmdldCA9IGRvd25jYXN0PEVsZW1lbnQ+KCZ0YXJnZXQp
OworCisgICAgY2FwdHVyaW5nRGF0YS5wcmV2aW91c1RhcmdldCA9IGN1cnJlbnRUYXJnZXQ7CisK
KyAgICBpZiAocG9pbnRlckV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnBvaW50ZXJtb3Zl
RXZlbnQgJiYgcHJldmlvdXNUYXJnZXQgIT0gY3VycmVudFRhcmdldCkgeworICAgICAgICAvLyBU
aGUgcG9pbnRlcmVudGVyIGFuZCBwb2ludGVybGVhdmUgZXZlbnRzIGFyZSBvbmx5IGRpc3BhdGNo
ZWQgaWYgdGhlcmUgaXMgYSBjYXB0dXJpbmcgZXZlbnQgbGlzdGVuZXIgb24gYW4gYW5jZXN0b3IK
KyAgICAgICAgLy8gb3IgYSBub3JtYWwgZXZlbnQgbGlzdGVuZXIgb24gdGhlIGVsZW1lbnQgaXRz
ZWxmIHNpbmNlIHRob3NlIGV2ZW50cyBkbyBub3QgYnViYmxlLgorICAgICAgICAvLyBUaGlzIG9w
dGltaXphdGlvbiBpcyBuZWNlc3Nhcnkgc2luY2UgdGhlc2UgZXZlbnRzIGNhbiBjYXVzZSBPKG5e
MikgY2FwdHVyaW5nIGV2ZW50LWhhbmRsZXIgY2hlY2tzLiBUaGlzIGZvbGxvd3MgdGhlCisgICAg
ICAgIC8vIGNvZGUgZm9yIHNpbWlsYXIgbW91c2UgZXZlbnRzIGluIEV2ZW50SGFuZGxlcjo6dXBk
YXRlTW91c2VFdmVudFRhcmdldE5vZGUoKS4KKyAgICAgICAgYm9vbCBoYXNDYXB0dXJpbmdQb2lu
dGVyRW50ZXJMaXN0ZW5lciA9IGhpZXJhcmNoeUhhc0NhcHR1cmluZ0V2ZW50TGlzdGVuZXJzKGN1
cnJlbnRUYXJnZXQuZ2V0KCksIGV2ZW50TmFtZXMoKS5wb2ludGVyZW50ZXJFdmVudCk7CisgICAg
ICAgIGJvb2wgaGFzQ2FwdHVyaW5nUG9pbnRlckxlYXZlTGlzdGVuZXIgPSBoaWVyYXJjaHlIYXND
YXB0dXJpbmdFdmVudExpc3RlbmVycyhwcmV2aW91c1RhcmdldC5nZXQoKSwgZXZlbnROYW1lcygp
LnBvaW50ZXJsZWF2ZUV2ZW50KTsKKworICAgICAgICBWZWN0b3I8UmVmPEVsZW1lbnQ+LCAzMj4g
bGVmdEVsZW1lbnRzQ2hhaW47CisgICAgICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IHByZXZp
b3VzVGFyZ2V0LmdldCgpOyBlbGVtZW50OyBlbGVtZW50ID0gZWxlbWVudC0+cGFyZW50RWxlbWVu
dEluQ29tcG9zZWRUcmVlKCkpCisgICAgICAgICAgICBsZWZ0RWxlbWVudHNDaGFpbi5hcHBlbmQo
KmVsZW1lbnQpOworICAgICAgICBWZWN0b3I8UmVmPEVsZW1lbnQ+LCAzMj4gZW50ZXJlZEVsZW1l
bnRzQ2hhaW47CisgICAgICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IGN1cnJlbnRUYXJnZXQu
Z2V0KCk7IGVsZW1lbnQ7IGVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50SW5Db21wb3Nl
ZFRyZWUoKSkKKyAgICAgICAgICAgIGVudGVyZWRFbGVtZW50c0NoYWluLmFwcGVuZCgqZWxlbWVu
dCk7CisKKyAgICAgICAgaWYgKCFsZWZ0RWxlbWVudHNDaGFpbi5pc0VtcHR5KCkgJiYgIWVudGVy
ZWRFbGVtZW50c0NoYWluLmlzRW1wdHkoKSAmJiBsZWZ0RWxlbWVudHNDaGFpbi5sYXN0KCkucHRy
KCkgPT0gZW50ZXJlZEVsZW1lbnRzQ2hhaW4ubGFzdCgpLnB0cigpKSB7CisgICAgICAgICAgICBz
aXplX3QgbWluSGVpZ2h0ID0gc3RkOjptaW4obGVmdEVsZW1lbnRzQ2hhaW4uc2l6ZSgpLCBlbnRl
cmVkRWxlbWVudHNDaGFpbi5zaXplKCkpOworICAgICAgICAgICAgc2l6ZV90IGk7CisgICAgICAg
ICAgICBmb3IgKGkgPSAwOyBpIDwgbWluSGVpZ2h0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBp
ZiAobGVmdEVsZW1lbnRzQ2hhaW5bbGVmdEVsZW1lbnRzQ2hhaW4uc2l6ZSgpIC0gaSAtIDFdLnB0
cigpICE9IGVudGVyZWRFbGVtZW50c0NoYWluW2VudGVyZWRFbGVtZW50c0NoYWluLnNpemUoKSAt
IGkgLSAxXS5wdHIoKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBsZWZ0RWxlbWVudHNDaGFpbi5zaHJpbmsobGVmdEVsZW1lbnRzQ2hhaW4u
c2l6ZSgpIC0gaSk7CisgICAgICAgICAgICBlbnRlcmVkRWxlbWVudHNDaGFpbi5zaHJpbmsoZW50
ZXJlZEVsZW1lbnRzQ2hhaW4uc2l6ZSgpIC0gaSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
cHJldmlvdXNUYXJnZXQpCisgICAgICAgICAgICBkaXNwYXRjaE92ZXJPck91dEV2ZW50KGV2ZW50
TmFtZXMoKS5wb2ludGVyb3V0RXZlbnQsIHByZXZpb3VzVGFyZ2V0LmdldCgpKTsKKworICAgICAg
ICBmb3IgKGF1dG8mIGNoYWluIDogbGVmdEVsZW1lbnRzQ2hhaW4pIHsKKyAgICAgICAgICAgIGlm
IChoYXNDYXB0dXJpbmdQb2ludGVyTGVhdmVMaXN0ZW5lciB8fCBjaGFpbi0+aGFzRXZlbnRMaXN0
ZW5lcnMoZXZlbnROYW1lcygpLnBvaW50ZXJsZWF2ZUV2ZW50KSkKKyAgICAgICAgICAgICAgICBk
aXNwYXRjaEV2ZW50KFBvaW50ZXJFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wb2ludGVybGVh
dmVFdmVudCwgcGxhdGZvcm1Ub3VjaEV2ZW50LCBpbmRleCwgaXNQcmltYXJ5LCB2aWV3KSwgY2hh
aW4ucHRyKCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGN1cnJlbnRUYXJnZXQpCisgICAg
ICAgICAgICBkaXNwYXRjaE92ZXJPck91dEV2ZW50KGV2ZW50TmFtZXMoKS5wb2ludGVyb3ZlckV2
ZW50LCBjdXJyZW50VGFyZ2V0LmdldCgpKTsKKworICAgICAgICBmb3IgKGF1dG8mIGNoYWluIDog
V1RGOjptYWtlUmV2ZXJzZWRSYW5nZShlbnRlcmVkRWxlbWVudHNDaGFpbikpIHsKKyAgICAgICAg
ICAgIGlmIChoYXNDYXB0dXJpbmdQb2ludGVyRW50ZXJMaXN0ZW5lciB8fCBjaGFpbi0+aGFzRXZl
bnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLnBvaW50ZXJlbnRlckV2ZW50KSkKKyAgICAgICAgICAg
ICAgICBkaXNwYXRjaEV2ZW50KFBvaW50ZXJFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wb2lu
dGVyZW50ZXJFdmVudCwgcGxhdGZvcm1Ub3VjaEV2ZW50LCBpbmRleCwgaXNQcmltYXJ5LCB2aWV3
KSwgY2hhaW4ucHRyKCkpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKHBvaW50ZXJFdmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5wb2ludGVyZG93bkV2ZW50KSB7CiAgICAgICAgIC8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wb2ludGVyZXZlbnRzLyN0aGUtcG9pbnRlcmRvd24tZXZl
bnQKICAgICAgICAgLy8gRm9yIGlucHV0IGRldmljZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBob3Zl
ciwgYSB1c2VyIGFnZW50IE1VU1QgYWxzbyBmaXJlIGEgcG9pbnRlciBldmVudCBuYW1lZCBwb2lu
dGVyb3ZlciBmb2xsb3dlZCBieSBhIHBvaW50ZXIgZXZlbnQgbmFtZWQKICAgICAgICAgLy8gcG9p
bnRlcmVudGVyIHByaW9yIHRvIGRpc3BhdGNoaW5nIHRoZSBwb2ludGVyZG93biBldmVudC4KLSAg
ICAgICAgZGlzcGF0Y2hPdmVyT3JPdXRFdmVudChldmVudE5hbWVzKCkucG9pbnRlcm92ZXJFdmVu
dCk7CisgICAgICAgIGRpc3BhdGNoT3Zlck9yT3V0RXZlbnQoZXZlbnROYW1lcygpLnBvaW50ZXJv
dmVyRXZlbnQsIGN1cnJlbnRUYXJnZXQuZ2V0KCkpOwogICAgICAgICBkaXNwYXRjaEVudGVyT3JM
ZWF2ZUV2ZW50KGV2ZW50TmFtZXMoKS5wb2ludGVyZW50ZXJFdmVudCk7CiAgICAgfQogCkBAIC0y
MzQsOCArMjkzLDkgQEAgdm9pZCBQb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXI6OmRpc3BhdGNoRXZl
bnRGb3JUb3VjaEF0SW5kZXgoRXZlbnRUYXJnZXQmIHRhcmdldCwKICAgICAgICAgLy8gaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3BvaW50ZXJldmVudHMvI3RoZS1wb2ludGVydXAtZXZlbnQKICAgICAg
ICAgLy8gRm9yIGlucHV0IGRldmljZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBob3ZlciwgYSB1c2Vy
IGFnZW50IE1VU1QgYWxzbyBmaXJlIGEgcG9pbnRlciBldmVudCBuYW1lZCBwb2ludGVyb3V0IGZv
bGxvd2VkIGJ5IGEKICAgICAgICAgLy8gcG9pbnRlciBldmVudCBuYW1lZCBwb2ludGVybGVhdmUg
YWZ0ZXIgZGlzcGF0Y2hpbmcgdGhlIHBvaW50ZXJ1cCBldmVudC4KLSAgICAgICAgZGlzcGF0Y2hP
dmVyT3JPdXRFdmVudChldmVudE5hbWVzKCkucG9pbnRlcm91dEV2ZW50KTsKKyAgICAgICAgZGlz
cGF0Y2hPdmVyT3JPdXRFdmVudChldmVudE5hbWVzKCkucG9pbnRlcm91dEV2ZW50LCBjdXJyZW50
VGFyZ2V0LmdldCgpKTsKICAgICAgICAgZGlzcGF0Y2hFbnRlck9yTGVhdmVFdmVudChldmVudE5h
bWVzKCkucG9pbnRlcmxlYXZlRXZlbnQpOworICAgICAgICBjYXB0dXJpbmdEYXRhLnByZXZpb3Vz
VGFyZ2V0ID0gbnVsbHB0cjsKICAgICB9CiB9CiAjZW5kaWYKQEAgLTMyNSwxMyArMzg1LDIwIEBA
IHZvaWQgUG9pbnRlckNhcHR1cmVDb250cm9sbGVyOjpwb2ludGVyRXZlbnRXaWxsQmVEaXNwYXRj
aGVkKGNvbnN0IFBvaW50ZXJFdmVudCYKICAgICAvLyByZWxlYXNlUG9pbnRlckNhcHR1cmUgaXMg
bm90IGNhbGxlZCBmb3IgdGhlIHBvaW50ZXIgYmVmb3JlIHRoZSBuZXh0IHBvaW50ZXIgZXZlbnQg
aXMgZmlyZWQsIHRoZW4gYSBnb3Rwb2ludGVyY2FwdHVyZSBldmVudCB3aWxsIGJlIGRpc3BhdGNo
ZWQKICAgICAvLyB0byB0aGUgdGFyZ2V0IChhcyBub3JtYWwpIGluZGljYXRpbmcgdGhhdCBjYXB0
dXJlIGlzIGFjdGl2ZS4KIAotICAgIENhcHR1cmluZ0RhdGEgY2FwdHVyaW5nRGF0YTsKLSAgICBj
YXB0dXJpbmdEYXRhLnBvaW50ZXJUeXBlID0gZXZlbnQucG9pbnRlclR5cGUoKTsKKyAgICBhdXRv
JiBjYXB0dXJpbmdEYXRhID0gZW5zdXJlQ2FwdHVyaW5nRGF0YUZvclBvaW50ZXJFdmVudChldmVu
dCk7CiAgICAgY2FwdHVyaW5nRGF0YS5wb2ludGVySXNQcmVzc2VkID0gdHJ1ZTsKLSAgICBtX2Fj
dGl2ZVBvaW50ZXJJZHNUb0NhcHR1cmluZ0RhdGEuc2V0KHBvaW50ZXJJZCwgY2FwdHVyaW5nRGF0
YSk7CiAgICAgc2V0UG9pbnRlckNhcHR1cmUoZG93bmNhc3Q8RWxlbWVudD4odGFyZ2V0KSwgcG9p
bnRlcklkKTsKIH0KIAorUG9pbnRlckNhcHR1cmVDb250cm9sbGVyOjpDYXB0dXJpbmdEYXRhJiBQ
b2ludGVyQ2FwdHVyZUNvbnRyb2xsZXI6OmVuc3VyZUNhcHR1cmluZ0RhdGFGb3JQb2ludGVyRXZl
bnQoY29uc3QgUG9pbnRlckV2ZW50JiBldmVudCkKK3sKKyAgICByZXR1cm4gbV9hY3RpdmVQb2lu
dGVySWRzVG9DYXB0dXJpbmdEYXRhLmVuc3VyZShldmVudC5wb2ludGVySWQoKSwgWyZldmVudF0g
eworICAgICAgICBDYXB0dXJpbmdEYXRhIGNhcHR1cmluZ0RhdGE7CisgICAgICAgIGNhcHR1cmlu
Z0RhdGEucG9pbnRlclR5cGUgPSBldmVudC5wb2ludGVyVHlwZSgpOworICAgICAgICByZXR1cm4g
Y2FwdHVyaW5nRGF0YTsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWU7Cit9CisKIHZvaWQgUG9pbnRl
ckNhcHR1cmVDb250cm9sbGVyOjpwb2ludGVyRXZlbnRXYXNEaXNwYXRjaGVkKGNvbnN0IFBvaW50
ZXJFdmVudCYgZXZlbnQpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fYWN0aXZlUG9pbnRlcklk
c1RvQ2FwdHVyaW5nRGF0YS5maW5kKGV2ZW50LnBvaW50ZXJJZCgpKTsKQEAgLTM5MCw2ICs0NTcs
MTAgQEAgdm9pZCBQb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXI6OmNhbmNlbFBvaW50ZXIoUG9pbnRl
cklEIHBvaW50ZXJJZCwgY29uc3QgSW50UG9pbnQKICAgICBjYXB0dXJpbmdEYXRhLnBlbmRpbmdU
YXJnZXRPdmVycmlkZSA9IG51bGxwdHI7CiAgICAgY2FwdHVyaW5nRGF0YS5jYW5jZWxsZWQgPSB0
cnVlOwogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBjYXB0dXJpbmdEYXRhLnByZXZpb3VzVGFyZ2V0ID0gbnVsbHB0cjsKKyNlbmRpZgorCiAg
ICAgYXV0byYgdGFyZ2V0ID0gY2FwdHVyaW5nRGF0YS50YXJnZXRPdmVycmlkZTsKICAgICBpZiAo
IXRhcmdldCkKICAgICAgICAgdGFyZ2V0ID0gbV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxl
cigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KGRvY3VtZW50UG9pbnQsIEhpdFRlc3RSZXF1ZXN0OjpS
ZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxs
b3dVc2VyQWdlbnRTaGFkb3dDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFt
ZUNvbnRlbnQpLmlubmVyTm9uU2hhcmVkRWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmgKaW5kZXggZjQzYmRiNWM2OWViYTExM2M3YjY5
ZWUxZjNjZWU2Y2IwZGYxZGRlMi4uMmM5Yzc2ZDA0NTEzZjViYzQ0OTc5MzZiNTMxNzU2YTQzZDcx
ZWFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJDYXB0dXJlQ29udHJvbGxl
ci5oCkBAIC02Nyw2ICs2Nyw5IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IENhcHR1cmluZ0RhdGEg
ewogICAgICAgICBSZWZQdHI8RWxlbWVudD4gcGVuZGluZ1RhcmdldE92ZXJyaWRlOwogICAgICAg
ICBSZWZQdHI8RWxlbWVudD4gdGFyZ2V0T3ZlcnJpZGU7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IHByZXZp
b3VzVGFyZ2V0OworI2VuZGlmCiAgICAgICAgIFN0cmluZyBwb2ludGVyVHlwZTsKICAgICAgICAg
Ym9vbCBjYW5jZWxsZWQgeyBmYWxzZSB9OwogICAgICAgICBib29sIGlzUHJpbWFyeSB7IGZhbHNl
IH07CkBAIC03NSw2ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHNob3J0IHByZXZpb3VzTW91
c2VCdXR0b24geyAtMSB9OwogICAgIH07CiAKKyAgICBDYXB0dXJpbmdEYXRhJiBlbnN1cmVDYXB0
dXJpbmdEYXRhRm9yUG9pbnRlckV2ZW50KGNvbnN0IFBvaW50ZXJFdmVudCYpOwogICAgIHZvaWQg
cG9pbnRlckV2ZW50V2lsbEJlRGlzcGF0Y2hlZChjb25zdCBQb2ludGVyRXZlbnQmLCBFdmVudFRh
cmdldCopOwogICAgIHZvaWQgcG9pbnRlckV2ZW50V2FzRGlzcGF0Y2hlZChjb25zdCBQb2ludGVy
RXZlbnQmKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDU5ZDU0M2EzYTUxYTIwYTg2NDczMmUxZDYwZTVjYTM2NzUxYmI4
ODMuLmQ4YjJhOTgxZDFmMDMzYTAxOGQ3NGEyMzkwY2EyYjg4N2VkYzA5Y2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOS0wOS0yMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgorCisgICAgICAgIHJlbGVhc2VQb2ludGVyQ2FwdHVyZSgpIG5vdCB3b3JraW5nIGZvciBpbXBs
aWNpdCBjYXB0dXJlOyBjYW4ndCBvcHQtaW4gdG8gcG9pbnRlcmVudGVyL2xlYXZlIGZvciB0b3Vj
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4
MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUzMTI3MjIzPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgdGVzdHMgdGhhdCBjaGVjayB3
ZSBjb3JyZWN0bHkgZGlzcGF0Y2ggYm91bmRhcnkgZXZlbnRzIG9uIGlPUyB3aGVuIHBvaW50ZXIg
Y2FwdHVyZSBpcyBkaXNhYmxlZC4KKworICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL2JvdW5k
YXJ5LWV2ZW50cy10aHJvdWdoLWhpZXJhcmNoeS13aXRob3V0LXBvaW50ZXItY2FwdHVyZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2
ZW50cy10aHJvdWdoLWhpZXJhcmNoeS13aXRob3V0LXBvaW50ZXItY2FwdHVyZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy9ib3VuZGFyeS1ldmVudHMtd2l0aG91dC1w
b2ludGVyLWNhcHR1cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZl
bnRzL2lvcy9ib3VuZGFyeS1ldmVudHMtd2l0aG91dC1wb2ludGVyLWNhcHR1cmUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy91dGlscy5qczoKKwogMjAxOS0wOS0xNSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlLXN5bmMgSFRNTCB3ZWIt
cGxhdGZvcm0tdGVzdHMgZnJvbSB1cHN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvYm91bmRhcnktZXZlbnRzLXRocm91Z2gtaGllcmFyY2h5LXdpdGhvdXQt
cG9pbnRlci1jYXB0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL2JvdW5kYXJ5LWV2ZW50cy10aHJvdWdoLWhpZXJhcmNoeS13aXRob3V0LXBvaW50ZXItY2Fw
dHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQwMWIwN2FhY2E0ZGYwZGRmZDZlZjA2YzFi
OTY5Njk5Y2I2NWM1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL2JvdW5kYXJ5LWV2ZW50cy10aHJvdWdoLWhpZXJhcmNoeS13aXRob3V0LXBvaW50ZXIt
Y2FwdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0
ICJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm91dCIgYW5kICJwb2ludGVy
bGVhdmUiIGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBjb3JyZWN0bHkgd2l0aCBjYXB0dXJlIGRpc2Fi
bGVkIGFzIGEgdG91Y2ggbW92ZXMgYmV0d2VlbiBlbGVtZW50cyBpbiBhIGhpZXJhcmNoeS4gCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2ZW50
cy10aHJvdWdoLWhpZXJhcmNoeS13aXRob3V0LXBvaW50ZXItY2FwdHVyZS5odG1sIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvYm91bmRhcnktZXZlbnRzLXRocm91Z2gtaGllcmFyY2h5
LXdpdGhvdXQtcG9pbnRlci1jYXB0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM3MmIyZTBiZjQyZmNl
NGZiNWY1NmMwOTU5MTZiMzdjOWQ2ZWRmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2ZW50cy10aHJvdWdoLWhpZXJhcmNoeS13aXRo
b3V0LXBvaW50ZXItY2FwdHVyZS5odG1sCkBAIC0wLDAgKzEsMTA3IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxz
dHlsZT4KKworYm9keSB7CisgICAgLyogRW5zdXJlIHdlIGdldCBwb2ludGVyIGV2ZW50cyBmb3Ig
YWxsIHRvdWNoIGV2ZW50cy4gKi8KKyAgICB0b3VjaC1hY3Rpb246IG5vbmU7Cit9CisKKyNjb250
YWluZXIsICNjb250YWluZXIgZGl2IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9w
OiAwOworICAgIGhlaWdodDogMTAwcHg7Cit9CisKKyNjb250YWluZXIgeworICAgIGxlZnQ6IDUw
cHg7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOworfQor
CisjbGVhZi1vbmUgeworICAgIHdpZHRoOiAxMDBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOworfQorCisjbmVzdGVkLWNvbnRhaW5lciB7CisgICAgbGVmdDogMTUwcHg7CisgICAgd2lk
dGg6IDI1MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorCisjbmVzdGVkLWxl
YWYtb25lIHsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcGluazsK
K30KKworI25lc3RlZC1sZWFmLXR3byB7CisgICAgbGVmdDogMTAwcHg7CisgICAgd2lkdGg6IDEw
MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKK30KKworPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICA8ZGl2IGlkPSJsZWFmLW9uZSI+
PC9kaXY+CisgICAgPGRpdiBpZD0ibmVzdGVkLWNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgaWQ9
Im5lc3RlZC1sZWFmLW9uZSI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Im5lc3RlZC1sZWFmLXR3
byI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGls
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3Qo
dGVzdCA9PiB7CisgICAgY29uc3QgZXZlbnRzTG9nID0gW107CisgICAgY29uc3QgbG9nZ2VyID0g
ZXZlbnQgPT4gZXZlbnRzTG9nLnB1c2goYCR7ZXZlbnQudHlwZX1AJHtldmVudC5jdXJyZW50VGFy
Z2V0LmlkfWApOworICAgIGZvciAobGV0IG5vZGUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiZGl2IikpIHsKKyAgICAgICAgZm9yIChsZXQgZXZlbnRUeXBlIG9mIFsicG9pbnRlcm92ZXIi
LCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJvdXQiLCAicG9pbnRlcmxlYXZlIl0pCisgICAgICAg
ICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsb2dnZXIpOworICAgIH0KKwor
ICAgIC8vIEVuc3VyZSB3ZSBkaXNhYmxlIHBvaW50ZXIgY2FwdHVyZS4KKyAgICBkb2N1bWVudC5i
b2R5LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwgZXZlbnQgPT4gZXZlbnQuY3VycmVu
dFRhcmdldC5yZWxlYXNlUG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKSk7CisKKyAgICBj
b25zdCBvbmUgPSB1aS5maW5nZXIoKTsKKyAgICB1aS5zZXF1ZW5jZShbCisgICAgICAgIG9uZS5i
ZWdpbih7IHg6IDEwLCB5OiA1MCB9KSwgLy8gV2Ugc3RhcnQgb3V0c2lkZSBvZiB0aGUgYm91bmRz
IG9mIGFueSA8ZGl2Pi4KKyAgICAgICAgb25lLm1vdmUoeyB4OiAxMDAsIHk6IDUwIH0pLCAvLyBT
dGVwIDE6IHdlIGVudGVyIHRoZSBib3VuZHMgb2YgYm90aCAjY29udGFpbmVyIGFuZCAjbGVhZi1v
bmUuCisgICAgICAgIG9uZS5tb3ZlKHsgeDogMTYwLCB5OiA1MCB9KSwgLy8gU3RlcCAyOiB3ZSBs
ZWF2ZSB0aGUgYm91bmRzIG9mICNsZWFmLW9uZSwgcmVtYWluaW5nIHdpdGhpbiAjY29udGFpbmVy
LgorICAgICAgICBvbmUubW92ZSh7IHg6IDIxMCwgeTogNTAgfSksIC8vIFN0ZXAgMzogd2UgZW50
ZXIgdGhlIGJvdW5kcyBvZiAjbmVzdGVkLWNvbnRhaW5lciBhbmQgI25lc3RlZC1sZWFmLW9uZSwg
cmVtYWluaW5nIHdpdGhpbiAjY29udGFpbmVyLgorICAgICAgICBvbmUubW92ZSh7IHg6IDMxMCwg
eTogNTAgfSksIC8vIFN0ZXAgNDogd2UgbGVhdmUgdGhlIGJvdW5kcyBvZiAjbmVzdGVkLWxlYWYt
b25lIGFuZCBlbnRlciB0aGUgYm91bmRzIG9mICNuZXN0ZWQtbGVhZi10d28sIHJlbWFpbmluZyB3
aXRoaW4gI25lc3RlZC1jb250YWluZXIgYW5kICNjb250YWluZXIuCisgICAgICAgIG9uZS5tb3Zl
KHsgeDogNDEwLCB5OiA1MCB9KSwgLy8gU3RlcCA1OiB3ZSBsZWF2ZSB0aGUgYm91bmRzIG9mICNu
ZXN0ZWQtbGVhZi10d28sIHJlbWFpbmluZyB3aXRoaW4gI25lc3RlZC1jb250YWluZXIgYW5kICNj
b250YWluZXIuCisgICAgICAgIG9uZS5tb3ZlKHsgeDogNDYwLCB5OiA1MCB9KSwgLy8gU3RlcCA2
OiB3ZSBsZWF2ZSB0aGUgYm91bmRzIG9mIGFueSA8ZGl2Pi4KKyAgICAgICAgb25lLmVuZCgpCisg
ICAgXSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZlbnRzTG9n
LCBbCisgICAgICAgICAgICAvLyBTdGVwIDEuCisgICAgICAgICAgICAicG9pbnRlcm92ZXJAbGVh
Zi1vbmUiLCAicG9pbnRlcm92ZXJAY29udGFpbmVyIiwgInBvaW50ZXJlbnRlckBjb250YWluZXIi
LCAicG9pbnRlcmVudGVyQGxlYWYtb25lIiwKKyAgICAgICAgICAgIC8vIFN0ZXAgMi4KKyAgICAg
ICAgICAgICJwb2ludGVyb3V0QGxlYWYtb25lIiwgInBvaW50ZXJvdXRAY29udGFpbmVyIiwgInBv
aW50ZXJsZWF2ZUBsZWFmLW9uZSIsICJwb2ludGVyb3ZlckBjb250YWluZXIiLAorICAgICAgICAg
ICAgLy8gU3RlcCAzLgorICAgICAgICAgICAgInBvaW50ZXJvdXRAY29udGFpbmVyIiwgInBvaW50
ZXJvdmVyQG5lc3RlZC1sZWFmLW9uZSIsICJwb2ludGVyb3ZlckBuZXN0ZWQtY29udGFpbmVyIiwg
InBvaW50ZXJvdmVyQGNvbnRhaW5lciIsICJwb2ludGVyZW50ZXJAbmVzdGVkLWNvbnRhaW5lciIs
ICJwb2ludGVyZW50ZXJAbmVzdGVkLWxlYWYtb25lIiwKKyAgICAgICAgICAgIC8vIFN0ZXAgNC4K
KyAgICAgICAgICAgICJwb2ludGVyb3V0QG5lc3RlZC1sZWFmLW9uZSIsICJwb2ludGVyb3V0QG5l
c3RlZC1jb250YWluZXIiLCAicG9pbnRlcm91dEBjb250YWluZXIiLCAicG9pbnRlcmxlYXZlQG5l
c3RlZC1sZWFmLW9uZSIsICJwb2ludGVyb3ZlckBuZXN0ZWQtbGVhZi10d28iLCAicG9pbnRlcm92
ZXJAbmVzdGVkLWNvbnRhaW5lciIsICJwb2ludGVyb3ZlckBjb250YWluZXIiLCAicG9pbnRlcmVu
dGVyQG5lc3RlZC1sZWFmLXR3byIsCisgICAgICAgICAgICAvLyBTdGVwIDUuCisgICAgICAgICAg
ICAicG9pbnRlcm91dEBuZXN0ZWQtbGVhZi10d28iLCAicG9pbnRlcm91dEBuZXN0ZWQtY29udGFp
bmVyIiwgInBvaW50ZXJvdXRAY29udGFpbmVyIiwgInBvaW50ZXJsZWF2ZUBuZXN0ZWQtbGVhZi10
d28iLCAicG9pbnRlcm92ZXJAbmVzdGVkLWNvbnRhaW5lciIsICJwb2ludGVyb3ZlckBjb250YWlu
ZXIiLAorICAgICAgICAgICAgLy8gU3RlcCA2LgorICAgICAgICAgICAgInBvaW50ZXJvdXRAbmVz
dGVkLWNvbnRhaW5lciIsICJwb2ludGVyb3V0QGNvbnRhaW5lciIsICJwb2ludGVybGVhdmVAbmVz
dGVkLWNvbnRhaW5lciIsICJwb2ludGVybGVhdmVAY29udGFpbmVyIgorICAgICAgICBdKTsKKyAg
ICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCBgVGVzdGluZyB0aGF0ICJwb2ludGVyb3Zl
ciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm91dCIgYW5kICJwb2ludGVybGVhdmUiIGV2ZW50
cyBhcmUgZGlzcGF0Y2hlZCBjb3JyZWN0bHkgd2l0aCBjYXB0dXJlIGRpc2FibGVkIGFzIGEgdG91
Y2ggbW92ZXMgYmV0d2VlbiBlbGVtZW50cyBpbiBhIGhpZXJhcmNoeS5gKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvYm91bmRhcnktZXZlbnRzLXdpdGhvdXQt
cG9pbnRlci1jYXB0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL2JvdW5kYXJ5LWV2ZW50cy13aXRob3V0LXBvaW50ZXItY2FwdHVyZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDZhYWIxYWU4MGE4YzkyMzM1NTBkMDVmMTU0MTdhYTJlMjhkZWU4NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2
ZW50cy13aXRob3V0LXBvaW50ZXItY2FwdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgVGVzdGluZyB0aGF0ICJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9p
bnRlcm91dCIgYW5kICJwb2ludGVybGVhdmUiIGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBjb3JyZWN0
bHkgd2l0aCBjYXB0dXJlIGRpc2FibGVkIGFzIGEgdG91Y2ggbW92ZXMgYmV0d2VlbiBlbGVtZW50
cy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5
LWV2ZW50cy13aXRob3V0LXBvaW50ZXItY2FwdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvYm91bmRhcnktZXZlbnRzLXdpdGhvdXQtcG9pbnRlci1jYXB0dXJlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTg3NzhlZjNkN2FiOTA3NTJmODkwYmM1ZDA4MGNkMGQ3ZmM2ZmZhMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL2JvdW5kYXJ5LWV2
ZW50cy13aXRob3V0LXBvaW50ZXItY2FwdHVyZS5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxl
PTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKworYXN5bmNfdGVzdCh0ZXN0ID0+IHsK
KyAgICBjb25zdCBmaXJzdFRhcmdldCA9IG1ha2VUYXJnZXQodGVzdCwgeyB4OiAiMTAwcHgiLCB5
OiAiMTAwcHgiLCB3aWR0aDogIjEwMHB4IiwgaGVpZ2h0OiAiMTAwcHgiIH0pOworICAgIGZpcnN0
VGFyZ2V0LmlkID0gIm9uZSI7CisKKyAgICBjb25zdCBzZWNvbmRUYXJnZXQgPSBtYWtlVGFyZ2V0
KHRlc3QsIHsgeDogIjIwMHB4IiwgeTogIjEwMHB4Iiwgd2lkdGg6ICIxMDBweCIsIGhlaWdodDog
IjEwMHB4IiB9KTsKKyAgICBzZWNvbmRUYXJnZXQuaWQgPSAidHdvIjsKKworICAgIGNvbnN0IGV2
ZW50c0xvZyA9IFtdOworICAgIGNvbnN0IGxvZ2dlciA9IGV2ZW50ID0+IGV2ZW50c0xvZy5wdXNo
KGAke2V2ZW50LnR5cGV9QCR7ZXZlbnQuY3VycmVudFRhcmdldC5pZH1gKTsKKyAgICBmb3IgKGxl
dCBldmVudFR5cGUgb2YgWyJwb2ludGVyb3ZlciIsICJwb2ludGVyZW50ZXIiLCAicG9pbnRlcm91
dCIsICJwb2ludGVybGVhdmUiXSkgeworICAgICAgICBmaXJzdFRhcmdldC5hZGRFdmVudExpc3Rl
bmVyKGV2ZW50VHlwZSwgbG9nZ2VyKTsKKyAgICAgICAgc2Vjb25kVGFyZ2V0LmFkZEV2ZW50TGlz
dGVuZXIoZXZlbnRUeXBlLCBsb2dnZXIpOworICAgIH0KKworICAgIC8vIEVuc3VyZSB3ZSBnZXQg
cG9pbnRlciBldmVudHMgZm9yIGFsbCB0b3VjaCBldmVudHMuCisgICAgZG9jdW1lbnQuYm9keS5z
dHlsZS50b3VjaEFjdGlvbiA9ICJub25lIjsKKworICAgIC8vIEVuc3VyZSB3ZSBkaXNhYmxlIHBv
aW50ZXIgY2FwdHVyZS4KKyAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50
ZXJkb3duIiwgZXZlbnQgPT4gZXZlbnQuY3VycmVudFRhcmdldC5yZWxlYXNlUG9pbnRlckNhcHR1
cmUoZXZlbnQucG9pbnRlcklkKSk7CisKKyAgICBjb25zdCBvbmUgPSB1aS5maW5nZXIoKTsKKyAg
ICB1aS5zZXF1ZW5jZShbCisgICAgICAgIG9uZS5iZWdpbih7IHg6IDUwLCB5OiAxNTAgfSksCisg
ICAgICAgIG9uZS5tb3ZlKHsgeDogMTUwLCB5OiAxNTAgfSksCisgICAgICAgIG9uZS5tb3ZlKHsg
eDogMjUwLCB5OiAxNTAgfSksCisgICAgICAgIG9uZS5tb3ZlKHsgeDogMzUwLCB5OiAxNTAgfSks
CisgICAgICAgIG9uZS5lbmQoKQorICAgIF0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGV2ZW50c0xvZywgWyJwb2ludGVyb3ZlckBvbmUiLCAicG9pbnRlcmVudGVy
QG9uZSIsICJwb2ludGVyb3V0QG9uZSIsICJwb2ludGVybGVhdmVAb25lIiwgInBvaW50ZXJvdmVy
QHR3byIsICJwb2ludGVyZW50ZXJAdHdvIiwgInBvaW50ZXJvdXRAdHdvIiwgInBvaW50ZXJsZWF2
ZUB0d28iXSk7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgYFRlc3RpbmcgdGhh
dCAicG9pbnRlcm92ZXIiLCAicG9pbnRlcmVudGVyIiwgInBvaW50ZXJvdXQiIGFuZCAicG9pbnRl
cmxlYXZlIiBldmVudHMgYXJlIGRpc3BhdGNoZWQgY29ycmVjdGx5IHdpdGggY2FwdHVyZSBkaXNh
YmxlZCBhcyBhIHRvdWNoIG1vdmVzIGJldHdlZW4gZWxlbWVudHMuYCk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9wb2ludGVy
ZXZlbnRzL3V0aWxzLmpzCmluZGV4IDZjZmMzYTlhMWM3YzZhN2IzZDg3NDI4NDI5MzlhMzNhNjM5
YTFiN2MuLjE1YzM4ZjRiZDY1MjY2YmZiOGUwNmVmZTk3OTM0YTNjYzg5MWRhNTkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvdXRpbHMuanMKKysrIGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy91dGlscy5qcwpAQCAtMTgsMjAgKzE4LDI0IEBAIGZ1bmN0aW9uIHRhcmdl
dF90ZXN0KC4uLmFyZ3MpCiAgICAgb3B0aW9ucy5oZWlnaHQgPSBvcHRpb25zLmhlaWdodCB8fCAi
MTAwJSI7CiAKICAgICBhc3luY190ZXN0KHRlc3QgPT4gewotICAgICAgICBjb25zdCB0YXJnZXQg
PSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
KTsKLSAgICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBgCi0gICAgICAgICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICBsZWZ0OiAke29wdGlvbnMueH07Ci0gICAg
ICAgICAgICB0b3A6ICR7b3B0aW9ucy55fTsKLSAgICAgICAgICAgIHdpZHRoOiAke29wdGlvbnMu
d2lkdGh9OwotICAgICAgICAgICAgaGVpZ2h0OiAke29wdGlvbnMuaGVpZ2h0fTsKLSAgICAgICAg
YCk7Ci0gICAgICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gdGFyZ2V0LnJlbW92ZSgpKTsKLQot
ICAgICAgICBjb250aW51dGF0aW9uKHRhcmdldCwgdGVzdCk7CisgICAgICAgIGNvbnRpbnV0YXRp
b24obWFrZVRhcmdldCh0ZXN0LCBvcHRpb25zKSwgdGVzdCk7CiAgICAgfSwgZGVzY3JpcHRpb24p
OwogfQogCitmdW5jdGlvbiBtYWtlVGFyZ2V0KHRlc3QsIG9wdGlvbnMpCit7CisgICAgY29uc3Qg
dGFyZ2V0ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKSk7CisgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBgCisgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogJHtvcHRpb25zLnh9OworICAgICAgICB0
b3A6ICR7b3B0aW9ucy55fTsKKyAgICAgICAgd2lkdGg6ICR7b3B0aW9ucy53aWR0aH07CisgICAg
ICAgIGhlaWdodDogJHtvcHRpb25zLmhlaWdodH07CisgICAgYCk7CisgICAgdGVzdC5hZGRfY2xl
YW51cCgoKSA9PiB0YXJnZXQucmVtb3ZlKCkpOworICAgIHJldHVybiB0YXJnZXQ7Cit9CisKIGNs
YXNzIEV2ZW50VHJhY2tlcgogewogICAgIGNvbnN0cnVjdG9yKHRhcmdldCwgZXZlbnROYW1lcykK
</data>
<flag name="review"
          id="394930"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>