<?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>237878</bug_id>
          
          <creation_ts>2022-03-15 00:09:11 -0700</creation_ts>
          <short_desc>AudioContext is suspended on iOS when page is backgrounded</short_desc>
          <delta_ts>2023-02-01 11:03:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achronop</cc>
    
    <cc>adrien.wurth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>ian</cc>
    
    <cc>jeremy.thomas</cc>
    
    <cc>jer.noble</cc>
    
    <cc>leo.au</cc>
    
    <cc>mattwindwer</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1851178</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-15 00:09:11 -0700</bug_when>
    <thetext>Following on https://bugs.webkit.org/show_bug.cgi?id=231105 which was MacOS specific, we have the same AudioContext issues:
- If page is backgrounded, AudioContext will be stopped even though AudioContext is not used directly for playing audio
- AudioContext might be resumed by web page in case it can autoplay (for instance if page is continuing to capture audio, which allows to continue playing audio).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851260</commentid>
    <comment_count>1</comment_count>
      <attachid>454699</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-15 06:29:10 -0700</bug_when>
    <thetext>Created attachment 454699
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851703</commentid>
    <comment_count>2</comment_count>
      <attachid>454812</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-16 03:03:20 -0700</bug_when>
    <thetext>Created attachment 454812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852158</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-17 00:22:56 -0700</bug_when>
    <thetext>Committed r291390 (248520@main): &lt;https://commits.webkit.org/248520@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454812.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852159</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-17 00:23:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/90415179&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854595</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-23 23:55:39 -0700</bug_when>
    <thetext>As spotted by Cameron, media/auto-play-web-audio-in-about-blank-iframe.html is failing  on bots after this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854598</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-23 23:59:40 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; As spotted by Cameron, media/auto-play-web-audio-in-about-blank-iframe.html
&gt; is failing  on bots after this change.

Hypothesis: background state is kept from a past test and never reset to false across tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857893</commentid>
    <comment_count>7</comment_count>
    <who name="Matthew Windwer">mattwindwer</who>
    <bug_when>2022-04-04 09:49:24 -0700</bug_when>
    <thetext>Thanks for fixing this. What iOS release can we expect this fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865405</commentid>
    <comment_count>8</comment_count>
    <who name="Jeremy Thoms">jeremy.thomas</who>
    <bug_when>2022-04-29 05:30:21 -0700</bug_when>
    <thetext>
&gt; Thanks for fixing this. What iOS release can we expect this fix?

I&apos;d also like to know the targeted iOS release. It&apos;s become a critical issue for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870681</commentid>
    <comment_count>9</comment_count>
    <who name="Adrien iWebDJ">adrien.wurth</who>
    <bug_when>2022-05-20 04:53:16 -0700</bug_when>
    <thetext>Oh no not again... almost same problem was introduce iOS 13 (webaudio stops when app is in background), it took one year to fix back then... https://developer.apple.com/forums/thread/121822

Please, this is CRITICAL, how can we develop a real music app with WVWebView if the audio stops in background? ... The problem doesn&apos;t happen on iOS Safari.

I am questioning the QA team who validated this release because the problem is so obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870682</commentid>
    <comment_count>10</comment_count>
    <who name="Adrien iWebDJ">adrien.wurth</who>
    <bug_when>2022-05-20 04:57:28 -0700</bug_when>
    <thetext>Same bug in iOS13 &gt; https://bugs.webkit.org/show_bug.cgi?id=203293, fixed in iOS14 and introduced again in iOS15... please this is a big issue...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874523</commentid>
    <comment_count>11</comment_count>
    <who name="Adrien iWebDJ">adrien.wurth</who>
    <bug_when>2022-06-07 10:08:42 -0700</bug_when>
    <thetext>@youenn fablet, Is this critical bug fix will be shipped on iOS16 only? if so it won&apos;t be accessible for all iPhones prior to iPhone 8, which is a big problem for wide adopted apps. Could you please release the fix in iOS15? iOS14 is not affected by this bug. Thanks!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874525</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-06-07 10:24:53 -0700</bug_when>
    <thetext>(In reply to Adrien iWebDJ from comment #11)
&gt; @youenn fablet, Is this critical bug fix will be shipped on iOS16 only? if
&gt; so it won&apos;t be accessible for all iPhones prior to iPhone 8, which is a big
&gt; problem for wide adopted apps. Could you please release the fix in iOS15?
&gt; iOS14 is not affected by this bug. Thanks!!

This particular fix should be in the iOS 16 beta 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874848</commentid>
    <comment_count>13</comment_count>
    <who name="Adrien iWebDJ">adrien.wurth</who>
    <bug_when>2022-06-08 16:25:36 -0700</bug_when>
    <thetext>@youenn fablet thank you for the reply and the fix!! but tell me if I am wrong, will this mean that the iPhones 6s/7/SE1 and many iPads will never be able to play background webaudio? (= making it unusable) 

If so, this would be a big problem because it has never happened to have a &quot;hole&quot; in the support of webaudio... :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1876040</commentid>
    <comment_count>14</comment_count>
    <who name="Ian Lovejoy">ian</who>
    <bug_when>2022-06-15 11:07:23 -0700</bug_when>
    <thetext>Just another upvote: it would really really be great if this fix could be merged into a 15.x release! Thanks for your consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1882431</commentid>
    <comment_count>15</comment_count>
    <who name="Adrien iWebDJ">adrien.wurth</who>
    <bug_when>2022-07-12 10:58:52 -0700</bug_when>
    <thetext>@youenn fablet, I just installed iOS 16 Beta 1 as you adviced, the fix is not there, WebAudio keeps stopping if app go to background... :&apos;(

Also I have issue with WebAudio with bluetooth, it is completely buggy. I don&apos;t know if you were aware of it...

(I am french too :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1882435</commentid>
    <comment_count>16</comment_count>
    <who name="Adrien iWebDJ">adrien.wurth</who>
    <bug_when>2022-07-12 11:11:32 -0700</bug_when>
    <thetext> ps : test it by yourself if you need : https://apps.apple.com/us/app/youdj-mix-music-now/id1459666155 
(desktop version is a popular DJ app : https://you.dj)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1898982</commentid>
    <comment_count>17</comment_count>
    <who name="Adrien iWebDJ">adrien.wurth</who>
    <bug_when>2022-09-16 08:48:52 -0700</bug_when>
    <thetext>Just to let you know, the fix is still not included in iOS 16.1 beta :&apos;(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908518</commentid>
    <comment_count>18</comment_count>
    <who name="">leo.au</who>
    <bug_when>2022-10-26 12:42:52 -0700</bug_when>
    <thetext>The bug is still present in iOS 16.1 release.  Tested on an iPhone 11 Pro demo playing various games on https://nj-casino.goldennuggetcasino.com/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930185</commentid>
    <comment_count>19</comment_count>
    <who name="Adrien iWebDJ">adrien.wurth</who>
    <bug_when>2023-02-01 11:03:02 -0800</bug_when>
    <thetext>The bug is 18 months old and it is still present in iOS 16.3, discouraging...

Also iOS 16.3 introduced a new bug! Now the silent switch is also muting WebAudio... 

The WKWebView behavior should match native apps for audio, otherwise it is useless and confusing.

I have open a new bug thread, these issues are too blocking : https://bugs.webkit.org/show_bug.cgi?id=237878</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930186</commentid>
    <comment_count>20</comment_count>
    <who name="Adrien iWebDJ">adrien.wurth</who>
    <bug_when>2023-02-01 11:03:35 -0800</bug_when>
    <thetext>Sorry the new bug thread is : https://bugs.webkit.org/show_bug.cgi?id=251532</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454699</attachid>
            <date>2022-03-15 06:29:10 -0700</date>
            <delta_ts>2022-03-16 03:03:15 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-237878-20220315142908.patch</filename>
            <type>text/plain</type>
            <size>10199</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTZjYzZlYjAxYjU4N2Jk
NjBkYmRiMGUzMzhmMTc0MjVmMTU1MGRkYS4uMTQ2YWYzZDAyNjQzMDRkN2UxYTk1ZThmYjcwMjI5
NDhlNzhiYTRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIyLTAzLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBdWRpb0NvbnRleHQgaXMg
c3VzcGVuZGVkIG9uIGlPUyB3aGVuIHBhZ2UgaXMgYmFja2dyb3VuZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4NzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbiBpT1MsIHdoZW4gdGhlIGFwcGxp
Y2F0aW9uIGdvZXMgaW4gdGhlIGJhY2tncm91bmQsIEF1ZGlvQ29udGV4dCBnZXRzIHN1c3BlbmRl
ZC4KKyAgICAgICAgVGhpcyBpcyBwcm9ibGVtYXRpYyB3aGVuIEF1ZGlvQ29udGV4dCBpcyB1c2Vk
IHRvIGdlbmVyYXRlIGF1ZGlvIHNhbXBsZXMgYnV0IG5vdCBwbGF5IGF1ZGlvIHNhbXBsZXMuCisg
ICAgICAgIFRvIGFsbG93IHRoZXNlIEF1ZGlvQ29udGV4dHMgdG8gcnVuIGV2ZW4gaW4gYmFja2dy
b3VuZCwgdGhlIGZvbGxvd2luZyBpcyBkb25lOgorICAgICAgICAtIE92ZXJyaWRlIGJhY2tncm91
bmQgaW50ZXJydXB0aW9ucyBpbiBjYXNlIHRoZSBhdWRpbyBjb250ZXh0IGRlZmF1bHQgZGVzdGlu
YXRpb24gaXMgbm90IGNvbm5lY3RlZC4KKyAgICAgICAgLSBNb25pdG9yIHdoZXRoZXIgdGhlIGRl
ZmF1bHQgZGVzdGluYXRpb24gaXMgY29ubmVjdGVkIG9yIG5vdC4KKyAgICAgICAgLSBJZiB0aGUg
ZGVmYXVsdCBkZXN0aW5hdGlvbiBnZXRzIGNvbm5lY3RlZCB3aGlsZSBhcHBsaWNhdGlvbiBpcyBp
biB0aGUgYmFja2dyb3VuZCwgdHJpZ2dlciBhbiBpbnRlcnJ1cHRpb24gdG8gcHJldmVudCBwbGF5
aW5nIGF1ZGlvLgorCisgICAgICAgIFRoaXMgYXBwcm9hY2gga2VlcHMgdGhlIGV4aXN0aW5nIGlP
UyBiZWhhdmlvciBpbiB0ZXJtcyBvZiByZW5kZXJlZCBhdWRpbyB3aGlsZSBhbGxvd2luZyBmb3Ig
bm90LXBsYXlpbmcgYXVkaW8gY29udGV4dHMgdG8gY29udGludWUgaW4gdGhlIGJhY2tncm91bmQu
CisKKyAgICAgICAgVGVzdHMgdG8gYmUgYWRkZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OnNo
b3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpkZWZhdWx0RGVzdGluYXRpb25Db25uZWN0aW9uQ2hh
bmdlZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb05vZGU6OmNoYW5nZWRDb25uZWN0aW9uV2l0aCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b05vZGU6OmNvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlOjpkaXNjb25uZWN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6aXNDb25uZWN0ZWQgY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmlzQXBw
bGljYXRpb25JbkJhY2tncm91bmQgY29uc3QpOgorCiAyMDIyLTAzLTE1ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBLZWVwIHNlcnZpY2Ugd29ya2VycyBhbGl2
ZSB3aGVuIHRoZXkgYXJlIGluc3BlY3RlZCBldmVuIHRob3VnaCB0aGV5IHNob3VsZCBiZSB0ZXJt
aW5hdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5jcHAKaW5kZXggYTM3MzQ4NThlOWNmM2VmNDgzYzIwNjE4NmE1NGQzMzY5MTZmNGM2OS4uYTk3
MWMwMzRjNWFjODM5ZTU5NTQyMzRkODYxNTRlODExZDMzZDJkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtNDgwLDYgKzQ4MCwx
MSBAQCBNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIgQXVkaW9Db250ZXh0OjptZWRpYVNlc3Np
b25Hcm91cElkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBkb2N1bWVudCAmJiBkb2N1bWVu
dC0+cGFnZSgpID8gZG9jdW1lbnQtPnBhZ2UoKS0+bWVkaWFTZXNzaW9uR3JvdXBJZGVudGlmaWVy
KCkgOiBNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIgeyB9OwogfQogCitib29sIEF1ZGlvQ29u
dGV4dDo6c2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSBpbnRlcnJ1cHRpb24pIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGludGVycnVwdGlvbiA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0
aW9uVHlwZTo6RW50ZXJpbmdCYWNrZ3JvdW5kICYmICFkZXN0aW5hdGlvbigpLmlzQ29ubmVjdGVk
KCk7Cit9CisKIGJvb2wgQXVkaW9Db250ZXh0Ojppc1N1c3BlbmRlZCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuICFkb2N1bWVudCgpIHx8IGRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdXNw
ZW5kZWQoKSB8fCBkb2N1bWVudCgpLT5hY3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpOwpAQCAt
NTE3LDYgKzUyMiwxMiBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFu
Z2UoKQogICAgIH0pOwogfQogCit2b2lkIEF1ZGlvQ29udGV4dDo6ZGVmYXVsdERlc3RpbmF0aW9u
Q29ubmVjdGlvbkNoYW5nZWQoKQoreworICAgIGlmIChQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNoYXJlZE1hbmFnZXIoKS5pc0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5kKCkgJiYgbV9tZWRp
YVNlc3Npb24tPnN0YXRlKCkgIT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGVkICYm
IGRlc3RpbmF0aW9uKCkuaXNDb25uZWN0ZWQoKSkKKyAgICAgICAgbV9tZWRpYVNlc3Npb24tPmJl
Z2luSW50ZXJydXB0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpFbnRlcmluZ0JhY2tncm91bmQp
OworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25zdCBMb2dnZXImIEF1ZGlvQ29u
dGV4dDo6bG9nZ2VyKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDEyYjY1NDEyNWUxZjM5OWIxYjBlMjZjZjg0ZTU4OTlm
Yjg4NmQ3YjguLmU0NmQ0Y2EwNDI0NWU3MjM5MmYxNDQ2NmI1YjkyNWQ1NTlkZjYzYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtOTYs
NiArOTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2
aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uKSB7IG1fcmVzdHJpY3Rpb25zIHw9IHJlc3RyaWN0
aW9uOyB9CiAgICAgdm9pZCByZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9yUmVzdHJp
Y3Rpb25zIHJlc3RyaWN0aW9uKSB7IG1fcmVzdHJpY3Rpb25zICY9IH5yZXN0cmljdGlvbjsgfQog
CisgICAgdm9pZCBkZWZhdWx0RGVzdGluYXRpb25Db25uZWN0aW9uQ2hhbmdlZCgpOworCiBwcml2
YXRlOgogICAgIEF1ZGlvQ29udGV4dChEb2N1bWVudCYsIGNvbnN0IEF1ZGlvQ29udGV4dE9wdGlv
bnMmKTsKIApAQCAtMTI3LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5SZWNlaXZl
UmVtb3RlQ29udHJvbENvbW1hbmRzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2b2lkIGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6UmVtb3RlQ29udHJvbENvbW1hbmRUeXBlLCBjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UmVtb3RlQ29tbWFuZEFyZ3VtZW50JikgZmluYWwgeyB9CiAgICAgYm9vbCBzdXBwb3J0c1NlZWtp
bmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgc2hvdWxkT3ZlcnJp
ZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50
ZXJydXB0aW9uVHlwZSkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHNo
b3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRpYVNl
c3Npb246OkludGVycnVwdGlvblR5cGUpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuUHJvZHVj
ZUF1ZGlvKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNTdXNwZW5k
ZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzUGxheWluZygpIGNvbnN0IGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCmluZGV4IDEwNDUw
NjE1YmYxNDE1ZDdiZDdjMWRmYjQ5N2U5YmNhNjFkYzA4NTcuLmQ3N2JlMTE1MjZmODI4NDkxNmRh
OWNmYzhmZDM2Nzg0NmQ1NTM4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvTm9kZS5jcHAKQEAgLTE3OSw2ICsxNzksMTMgQEAgQXVkaW9Ob2RlT3V0cHV0KiBB
dWRpb05vZGU6Om91dHB1dCh1bnNpZ25lZCBpKQogICAgIHJldHVybiBudWxscHRyOwogfQogCit2
b2lkIEF1ZGlvTm9kZTo6Y2hhbmdlZENvbm5lY3Rpb25XaXRoKEF1ZGlvTm9kZSYgbm9kZSkKK3sK
KyAgICBhdXRvJiBjb250ZXh0ID0gdGhpcy0+Y29udGV4dCgpOworICAgIGlmIChpczxBdWRpb0Nv
bnRleHQ+KGNvbnRleHQpICYmICZub2RlID09ICZjb250ZXh0LmRlc3RpbmF0aW9uKCkpCisgICAg
ICAgIGRvd25jYXN0PEF1ZGlvQ29udGV4dD4oY29udGV4dCkuZGVmYXVsdERlc3RpbmF0aW9uQ29u
bmVjdGlvbkNoYW5nZWQoKTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpjb25u
ZWN0KEF1ZGlvTm9kZSYgZGVzdGluYXRpb24sIHVuc2lnbmVkIG91dHB1dEluZGV4LCB1bnNpZ25l
ZCBpbnB1dEluZGV4KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0yMDIsNiAr
MjA5LDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Ob2RlOjpjb25uZWN0KEF1ZGlvTm9kZSYg
ZGVzdGluYXRpb24sIHVuc2lnbmVkIG91dHB1dEluZGUKICAgICBpZiAoIW91dHB1dC0+bnVtYmVy
T2ZDaGFubmVscygpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vy
cm9yLCAiTm9kZSBoYXMgemVybyBvdXRwdXQgY2hhbm5lbHMiX3MgfTsKIAorICAgIGNoYW5nZWRD
b25uZWN0aW9uV2l0aChkZXN0aW5hdGlvbik7CisKICAgICBpbnB1dC0+Y29ubmVjdChvdXRwdXQp
OwogCiAgICAgdXBkYXRlUHVsbFN0YXR1cygpOwpAQCAtMjgwLDYgKzI4OSw4IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEF1ZGlvTm9kZTo6ZGlzY29ubmVjdChBdWRpb05vZGUmIGRlc3RpbmF0aW9uTm9k
ZSkKICAgICBpZiAoIWRpZERpc2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUaGUgZ2l2ZW4gZGVzdGluYXRpb24gaXMgbm90IGNvbm5l
Y3RlZCJfcyB9OwogCisgICAgY2hhbmdlZENvbm5lY3Rpb25XaXRoKGRlc3RpbmF0aW9uTm9kZSk7
CisKICAgICB1cGRhdGVQdWxsU3RhdHVzKCk7CiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTMwNSw2
ICszMTYsOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OmRpc2Nvbm5lY3QoQXVkaW9O
b2RlJiBkZXN0aW5hdGlvbk5vZGUsIHVuc2lnbmVkIG91dAogICAgIGlmICghZGlkRGlzY29ubmVj
dGlvbikKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRo
ZSBnaXZlbiBkZXN0aW5hdGlvbiBpcyBub3QgY29ubmVjdGVkIl9zIH07CiAKKyAgICBjaGFuZ2Vk
Q29ubmVjdGlvbldpdGgoZGVzdGluYXRpb25Ob2RlKTsKKwogICAgIHVwZGF0ZVB1bGxTdGF0dXMo
KTsKICAgICByZXR1cm4geyB9OwogfQpAQCAtMzI1LDYgKzMzOCw4IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEF1ZGlvTm9kZTo6ZGlzY29ubmVjdChBdWRpb05vZGUmIGRlc3RpbmF0aW9uTm9kZSwgdW5z
aWduZWQgb3V0CiAgICAgaWYgKCFvdXRwdXQtPmlzQ29ubmVjdGVkVG8oKmlucHV0KSkKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRoZSBnaXZlbiBkZXN0
aW5hdGlvbiBpcyBub3QgY29ubmVjdGVkIl9zIH07CiAKKyAgICBjaGFuZ2VkQ29ubmVjdGlvbldp
dGgoZGVzdGluYXRpb25Ob2RlKTsKKwogICAgIGlucHV0LT5kaXNjb25uZWN0KG91dHB1dCk7CiAK
ICAgICB1cGRhdGVQdWxsU3RhdHVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGUuaAppbmRleCBlYmIzZGMwYWZjNTlmNzMwMzhlZjEwMjM4ZTg1ZWQ2ODZkN2Q5
ZjlhLi5iYTE3ZmI2ZGE4ZDAyMDkyZjZkZjJiM2MxOWE5MTYyMWFlOTc5ZDE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKQEAgLTIzOCw2ICsyMzgsOCBA
QCBwcml2YXRlOgogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsOwogCisgICAgdm9pZCBjaGFuZ2VkQ29ubmVjdGlv
bldpdGgoQXVkaW9Ob2RlJik7CisKICAgICB2b2xhdGlsZSBib29sIG1faXNJbml0aWFsaXplZCB7
IGZhbHNlIH07CiAgICAgTm9kZVR5cGUgbV9ub2RlVHlwZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwCmluZGV4IDllZTY0Yjc5MzcwNDk0YjUzNTM5OTc0NzJhOTFlNzhmYzBlZmI3NjYu
Ljc2ODQyMTdmNzExN2VlNGQzMmFiMzQ0Zjc4Zjg2ZGM0ZjhlNDk0MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKQEAgLTY0LDYgKzY0LDEyIEBAIEF1ZGlvQ29udGV4dCYgRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjb250ZXh0KCkKICAgICByZXR1cm4gZG93bmNhc3Q8QXVk
aW9Db250ZXh0PihBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y29udGV4dCgpKTsKIH0KIAorYm9vbCBE
ZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmlzQ29ubmVjdGVkKCkgY29uc3QKK3sKKyAgICBh
dXRvKiBpbnB1dCA9IGNvbnN0X2Nhc3Q8RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKj4odGhp
cyktPmlucHV0KDApOworICAgIHJldHVybiBpbnB1dCA/IGlucHV0LT5pc0Nvbm5lY3RlZCgpIDog
ZmFsc2U7Cit9CisKIGNvbnN0IEF1ZGlvQ29udGV4dCYgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlOjpjb250ZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gZG93bmNhc3Q8QXVkaW9Db250ZXh0
PihBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5oCmluZGV4IDRiMDhlNTAxY2MyYmQwMTVjOWM1MDZmNTc4NGNjMGRhNGU4OTdjMmMuLjcxMWI1
NWY5Y2IzY2ZlNzQ3MmIwYzcyZGFiMGZlMDc0NTIyZjI0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE11dGVkKGJv
b2wgbXV0ZWQpIHsgbV9tdXRlZCA9IG11dGVkOyB9CiAgICAgYm9vbCBpc1BsYXlpbmdBdWRpbygp
IGNvbnN0IHsgcmV0dXJuIG1faXNFZmZlY3RpdmVseVBsYXlpbmdBdWRpbzsgfQorICAgIGJvb2wg
aXNDb25uZWN0ZWQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZURlc3RpbmF0
aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCmluZGV4IGUyMGVmNDYyNDhiMDg1Yzc2Yzc0MDRm
ZDk0MWFkZGQ5NjU2NGZhOTQuLjZkODdhNmRiMDEyOGRmMThiNTcwYTdlMTVkNmRiYjYwOTQ1ZWEx
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC0xNjksNiArMTY5LDggQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0SGF2ZUV2ZXJSZWdpc3RlcmVkQXNOb3dQbGF5aW5nQXBw
bGljYXRpb25Gb3JUZXN0aW5nKCkgeyB9OwogCisgICAgYm9vbCBpc0FwcGxpY2F0aW9uSW5CYWNr
Z3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9pc0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5kOyB9CisK
IHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb247CiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+IGNyZWF0
ZSgpOwpAQCAtMTgxLDcgKzE4Myw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGZvckVhY2hTZXNz
aW9uSW5Hcm91cChNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIsIGNvbnN0IEZ1bmN0aW9uPHZv
aWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mKT4mKTsKICAgICBib29sIGFueU9mU2Vzc2lvbnMoY29u
c3QgRnVuY3Rpb248Ym9vbChjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpPiYpIGNvbnN0Owog
Ci0gICAgYm9vbCBpc0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9p
c0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5kOyB9CiAgICAgdm9pZCBtYXliZURlYWN0aXZhdGVBdWRp
b1Nlc3Npb24oKTsKICAgICBib29sIG1heWJlQWN0aXZhdGVBdWRpb1Nlc3Npb24oKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454812</attachid>
            <date>2022-03-16 03:03:20 -0700</date>
            <delta_ts>2022-03-17 00:22:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237878-20220316110317.patch</filename>
            <type>text/plain</type>
            <size>23464</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTZjYzZlYjAxYjU4N2Jk
NjBkYmRiMGUzMzhmMTc0MjVmMTU1MGRkYS4uNzVjNzFkYTVjZDc4MGM5Nzk3YzFiYzg0Y2M2N2Uy
NDMxNWM2NmYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAzLTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBdWRpb0NvbnRleHQgaXMg
c3VzcGVuZGVkIG9uIGlPUyB3aGVuIHBhZ2UgaXMgYmFja2dyb3VuZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4NzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbiBpT1MsIHdoZW4gdGhlIGFwcGxp
Y2F0aW9uIGdvZXMgaW4gdGhlIGJhY2tncm91bmQsIEF1ZGlvQ29udGV4dCBnZXRzIHN1c3BlbmRl
ZC4KKyAgICAgICAgVGhpcyBpcyBwcm9ibGVtYXRpYyB3aGVuIEF1ZGlvQ29udGV4dCBpcyB1c2Vk
IHRvIGdlbmVyYXRlIGF1ZGlvIHNhbXBsZXMgYnV0IG5vdCBwbGF5IGF1ZGlvIHNhbXBsZXMuCisg
ICAgICAgIFRvIGFsbG93IHRob3NlIHNpbGVudCBBdWRpb0NvbnRleHRzIHRvIHJ1biBldmVuIGlu
IGJhY2tncm91bmQsIHRoZSBmb2xsb3dpbmcgaXMgZG9uZToKKyAgICAgICAgLSBPdmVycmlkZSBi
YWNrZ3JvdW5kIGludGVycnVwdGlvbnMgaW4gY2FzZSB0aGUgYXVkaW8gY29udGV4dCBkZWZhdWx0
IGRlc3RpbmF0aW9uIGlzIG5vdCBjb25uZWN0ZWQuCisgICAgICAgIC0gTW9uaXRvciB3aGV0aGVy
IHRoZSBkZWZhdWx0IGRlc3RpbmF0aW9uIGlzIGNvbm5lY3RlZCBvciBub3QuCisgICAgICAgIC0g
SWYgdGhlIGRlZmF1bHQgZGVzdGluYXRpb24gZ2V0cyBjb25uZWN0ZWQgd2hpbGUgYXBwbGljYXRp
b24gaXMgaW4gdGhlIGJhY2tncm91bmQsIHRyaWdnZXIgYW4gaW50ZXJydXB0aW9uIHRvIHByZXZl
bnQgcGxheWluZyBhdWRpby4KKworICAgICAgICBUbyBwcmV2ZW50IHBvdGVudGlhbCBhdWRpbyBi
dXJzdCwgd2UgaW50ZXJydXB0IGp1c3QgYmVmb3JlIHRoZSBkZXN0aW5hdGlvbiBnZXRzIGNvbm5l
Y3RlZCBhbmQgbm90IGp1c3QgYWZ0ZXIuCisgICAgICAgIEZvciB0aGF0IHJlYXNvbiwgd2UgYWRk
IG1fY2FuT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbiB0byBlbmZvcmNlIGlu
dGVycnVwdGlvbiB3aGVuIHdlIG5vdyB0aGUgY29ubmVjdGlvbiB3aWxsIGJlIGNvbm5lY3RlZC4K
KworICAgICAgICBUaGlzIGFwcHJvYWNoIGtlZXBzIHRoZSBleGlzdGluZyBpT1MgYmVoYXZpb3Ig
aW4gdGVybXMgb2YgcmVuZGVyZWQgYXVkaW8gd2hpbGUgYWxsb3dpbmcgZm9yIG5vdC1wbGF5aW5n
IGF1ZGlvIGNvbnRleHRzIHRvIGNvbnRpbnVlIGluIHRoZSBiYWNrZ3JvdW5kLgorCisgICAgICAg
IFRlc3RzOiB3ZWJhdWRpby9zdXNwZW5kLWNvbnRleHQtd2hpbGUtYmFja2dyb3VuZGVkLmh0bWwg
YW5kIEFQSSB0ZXN0LgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
Y3BwOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaDoKKwogMjAyMi0wMy0xNSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgS2VlcCBzZXJ2aWNlIHdvcmtl
cnMgYWxpdmUgd2hlbiB0aGV5IGFyZSBpbnNwZWN0ZWQgZXZlbiB0aG91Z2ggdGhleSBzaG91bGQg
YmUgdGVybWluYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1ZjRiMTkzNDQwNjYzYmQ1YjNhYzg0YTA5YjZiY2Fm
NzhkZjE2ZjE3Li5kNjNhZWNhNmU4Y2Y2ZDQ5YWZjMDkzYjk1MmFmZjQ0ZmJiNTA0NGVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAzLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBBdWRpb0NvbnRleHQgaXMgc3VzcGVuZGVkIG9uIGlPUyB3
aGVuIHBhZ2UgaXMgYmFja2dyb3VuZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzc4NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvc2UgcHJpdmF0ZSBTUEkgZm9yIHRlc3RpbmcgcHVycG9zZXMu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorCiAyMDIyLTAzLTE1ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBLZWVwIHNlcnZpY2Ugd29ya2VycyBh
bGl2ZSB3aGVuIHRoZXkgYXJlIGluc3BlY3RlZCBldmVuIHRob3VnaCB0aGV5IHNob3VsZCBiZSB0
ZXJtaW5hdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAKaW5kZXggYTM3MzQ4NThlOWNmM2VmNDgzYzIwNjE4NmE1NGQzMzY5MTZmNGM2OS4u
N2UzYWIwZGMwOTE0Y2QxOWZkNzBkNDg5MDI0NGVjZTU0MTcyMGE0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtNTE3LDYgKzUx
NywyNSBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKQogICAg
IH0pOwogfQogCitib29sIEF1ZGlvQ29udGV4dDo6c2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxh
eWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSBp
bnRlcnJ1cHRpb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2FuT3ZlcnJpZGVCYWNrZ3JvdW5k
UGxheWJhY2tSZXN0cmljdGlvbiAmJiBpbnRlcnJ1cHRpb24gPT0gUGxhdGZvcm1NZWRpYVNlc3Np
b246OkludGVycnVwdGlvblR5cGU6OkVudGVyaW5nQmFja2dyb3VuZCAmJiAhZGVzdGluYXRpb24o
KS5pc0Nvbm5lY3RlZCgpOworfQorCit2b2lkIEF1ZGlvQ29udGV4dDo6ZGVmYXVsdERlc3RpbmF0
aW9uV2lsbEJlY29tZUNvbm5lY3RlZCgpCit7CisgICAgLy8gV2UgbWlnaHQgbmVlZCB0byBpbnRl
cnJ1cHQgaWYgd2UgcHJldmlvdXNseSBvdmVycm9kZSBhIGJhY2tncm91bmQgaW50ZXJydXB0aW9u
LgorICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCku
aXNBcHBsaWNhdGlvbkluQmFja2dyb3VuZCgpIHx8IG1fbWVkaWFTZXNzaW9uLT5zdGF0ZSgpID09
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRlZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gV2UgZW5kIHRoZSBvdmVycmlkZW4gaW50ZXJydXB0aW9uIChpZiBhbnkpIHRvIGdldCB0
aGUgcmlnaHQgY291bnQgb2YgaW50ZXJydXB0aW9ucyBhbmQgc3RhcnQgYSBuZXcgaW50ZXJydXB0
aW9uLgorICAgIG1fbWVkaWFTZXNzaW9uLT5lbmRJbnRlcnJ1cHRpb24oUGxhdGZvcm1NZWRpYVNl
c3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzOjpOb0ZsYWdzKTsKKworICAgIG1fY2FuT3ZlcnJp
ZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbiA9IGZhbHNlOworICAgIG1fbWVkaWFTZXNz
aW9uLT5iZWdpbkludGVycnVwdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6RW50ZXJpbmdCYWNr
Z3JvdW5kKTsKKyAgICBtX2Nhbk92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24g
PSB0cnVlOworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBjb25zdCBMb2dnZXImIEF1
ZGlvQ29udGV4dDo6bG9nZ2VyKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDEyYjY1NDEyNWUxZjM5OWIxYjBlMjZjZjg0
ZTU4OTlmYjg4NmQ3YjguLmE1MzE4MTNlZjM3ZTNhOTBjMDNjZDJhMDkxODg0NjAxOTU2YTMxMjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApA
QCAtOTYsNiArOTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRCZWhhdmlvclJlc3RyaWN0aW9u
KEJlaGF2aW9yUmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uKSB7IG1fcmVzdHJpY3Rpb25zIHw9IHJl
c3RyaWN0aW9uOyB9CiAgICAgdm9pZCByZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEJlaGF2aW9y
UmVzdHJpY3Rpb25zIHJlc3RyaWN0aW9uKSB7IG1fcmVzdHJpY3Rpb25zICY9IH5yZXN0cmljdGlv
bjsgfQogCisgICAgdm9pZCBkZWZhdWx0RGVzdGluYXRpb25XaWxsQmVjb21lQ29ubmVjdGVkKCk7
CisKIHByaXZhdGU6CiAgICAgQXVkaW9Db250ZXh0KERvY3VtZW50JiwgY29uc3QgQXVkaW9Db250
ZXh0T3B0aW9ucyYpOwogCkBAIC0xMjcsNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGNh
blJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZvaWQgZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUsIGNvbnN0IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpSZW1vdGVDb21tYW5kQXJndW1lbnQmKSBmaW5hbCB7IH0KICAgICBib29sIHN1cHBv
cnRzU2Vla2luZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBzaG91
bGRPdmVycmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpJbnRlcnJ1cHRpb25UeXBlKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgc2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBj
YW5Qcm9kdWNlQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBp
c1N1c3BlbmRlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNQbGF5aW5nKCkgY29uc3QgZmlu
YWw7CkBAIC0xNTMsNiArMTU1LDggQEAgcHJpdmF0ZToKICAgICAvLyBbW3N1c3BlbmRlZCBieSB1
c2VyXV0gZmxhZyBpbiB0aGUgc3BlY2lmaWNhdGlvbjoKICAgICAvLyBodHRwczovL3d3dy53My5v
cmcvVFIvd2ViYXVkaW8vI2RvbS1hdWRpb2NvbnRleHQtc3VzcGVuZGVkLWJ5LXVzZXItc2xvdAog
ICAgIGJvb2wgbV93YXNTdXNwZW5kZWRCeVNjcmlwdCB7IGZhbHNlIH07CisKKyAgICBib29sIG1f
Y2FuT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbiB7IHRydWUgfTsKIH07CiAK
IH0gLy8gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGUuY3BwCmluZGV4IDEwNDUwNjE1YmYxNDE1ZDdiZDdjMWRmYjQ5N2U5YmNhNjFkYzA4NTcuLjU0
MTUwYzBlMTEwMWZkMWM4M2NlYjQxMDFmYmMyNTAxYTc3MGU1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKQEAgLTE5Myw3ICsxOTMsOCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBBdWRpb05vZGU6OmNvbm5lY3QoQXVkaW9Ob2RlJiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgb3V0cHV0SW5kZQogICAgIGlmIChpbnB1dEluZGV4ID49IGRlc3RpbmF0aW9u
Lm51bWJlck9mSW5wdXRzKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbmRleFNpemVF
cnJvciwgIklucHV0IGluZGV4IGV4Y2VlZHMgbnVtYmVyIG9mIGlucHV0cyJfcyB9OwogCi0gICAg
aWYgKCZjb250ZXh0KCkgIT0gJmRlc3RpbmF0aW9uLmNvbnRleHQoKSkKKyAgICBhdXRvJiBjb250
ZXh0ID0gdGhpcy0+Y29udGV4dCgpOworICAgIGlmICgmY29udGV4dCAhPSAmZGVzdGluYXRpb24u
Y29udGV4dCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiU291cmNlIGFuZCBkZXN0aW5hdGlvbiBub2RlcyBiZWxvbmcgdG8gZGlmZmVyZW50IGF1ZGlv
IGNvbnRleHRzIl9zIH07CiAKICAgICBhdXRvKiBpbnB1dCA9IGRlc3RpbmF0aW9uLmlucHV0KGlu
cHV0SW5kZXgpOwpAQCAtMjAyLDYgKzIwMyw5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvTm9k
ZTo6Y29ubmVjdChBdWRpb05vZGUmIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBvdXRwdXRJbmRlCiAg
ICAgaWYgKCFvdXRwdXQtPm51bWJlck9mQ2hhbm5lbHMoKSkKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk5vZGUgaGFzIHplcm8gb3V0cHV0IGNoYW5uZWxz
Il9zIH07CiAKKyAgICBpZiAoaXM8QXVkaW9Db250ZXh0Pihjb250ZXh0KSAmJiAmZGVzdGluYXRp
b24gPT0gJmNvbnRleHQuZGVzdGluYXRpb24oKSAmJiAhZG93bmNhc3Q8QXVkaW9Db250ZXh0Pihj
b250ZXh0KS5kZXN0aW5hdGlvbigpLmlzQ29ubmVjdGVkKCkpCisgICAgICAgIGRvd25jYXN0PEF1
ZGlvQ29udGV4dD4oY29udGV4dCkuZGVmYXVsdERlc3RpbmF0aW9uV2lsbEJlY29tZUNvbm5lY3Rl
ZCgpOworCiAgICAgaW5wdXQtPmNvbm5lY3Qob3V0cHV0KTsKIAogICAgIHVwZGF0ZVB1bGxTdGF0
dXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
dW1taW5nSnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
dW1taW5nSnVuY3Rpb24uaAppbmRleCA2ZmY5NDlhMmYwZTExNWZkODkwZTJkZjgxMGQ1ZDE5ZTg4
NTEwZjBmLi40MDVmNzgwYWI5MzUxMDM1ZTFlNTU5YjdmNzA1NGYxYjU4NDAzNTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5j
dGlvbi5oCkBAIC02MywxMyArNjMsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBtYXJrUmVuZGVy
aW5nU3RhdGVBc0RpcnR5KCk7CiAKLXByb3RlY3RlZDoKLSAgICBXZWFrUHRyPEJhc2VBdWRpb0Nv
bnRleHQ+IG1fY29udGV4dDsKLQogICAgIC8vIG51bWJlck9mQ29ubmVjdGlvbnMoKSBzaG91bGQg
bmV2ZXIgYmUgY2FsbGVkIGZyb20gdGhlIGF1ZGlvIHJlbmRlcmluZyB0aHJlYWQuCiAgICAgLy8g
SW5zdGVhZCBudW1iZXJPZlJlbmRlcmluZ0Nvbm5lY3Rpb25zKCkgYW5kIHJlbmRlcmluZ091dHB1
dCgpIHNob3VsZCBiZSB1c2VkLgogICAgIHVuc2lnbmVkIG51bWJlck9mQ29ubmVjdGlvbnMoKSBj
b25zdCB7IHJldHVybiBtX291dHB1dHMuc2l6ZSgpOyB9CiAKK3Byb3RlY3RlZDoKKyAgICBXZWFr
UHRyPEJhc2VBdWRpb0NvbnRleHQ+IG1fY29udGV4dDsKKwogICAgIHVuc2lnbmVkIG1heGltdW1O
dW1iZXJPZkNoYW5uZWxzKCkgY29uc3Q7CiAKICAgICAvLyBtX3JlbmRlcmluZ091dHB1dHMgaXMg
YSBjb3B5IG9mIG1fb3V0cHV0cyB3aGljaCB3aWxsIG5ldmVyIGJlIG1vZGlmaWVkIGR1cmluZyB0
aGUgZ3JhcGggcmVuZGVyaW5nIG9uIHRoZSBhdWRpbyB0aHJlYWQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAKaW5kZXggOWVlNjRiNzkzNzA0OTRiNTM1Mzk5NzQ3MmE5MWU3OGZjMGVmYjc2
Ni4uN2VlYmEyMTYwYzk1NjdiZDM5MGNjMDVlMWJlNTMzMmNmYmY3ZjNlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcApAQCAtNjQsNiArNjQsMTIgQEAgQXVkaW9Db250ZXh0JiBEZWZh
dWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNvbnRleHQoKQogICAgIHJldHVybiBkb3duY2FzdDxB
dWRpb0NvbnRleHQ+KEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjb250ZXh0KCkpOwogfQogCitib29s
IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6aXNDb25uZWN0ZWQoKSBjb25zdAoreworICAg
IGF1dG8qIGlucHV0ID0gY29uc3RfY2FzdDxEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUqPih0
aGlzKS0+aW5wdXQoMCk7CisgICAgcmV0dXJuIGlucHV0ID8gISFpbnB1dC0+bnVtYmVyT2ZDb25u
ZWN0aW9ucygpIDogZmFsc2U7Cit9CisKIGNvbnN0IEF1ZGlvQ29udGV4dCYgRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlOjpjb250ZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gZG93bmNhc3Q8
QXVkaW9Db250ZXh0PihBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y29udGV4dCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5oCmluZGV4IDRiMDhlNTAxY2MyYmQwMTVjOWM1MDZmNTc4NGNjMGRhNGU4
OTdjMmMuLjcxMWI1NWY5Y2IzY2ZlNzQ3MmIwYzcyZGFiMGZlMDc0NTIyZjI0MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldE11dGVkKGJvb2wgbXV0ZWQpIHsgbV9tdXRlZCA9IG11dGVkOyB9CiAgICAgYm9vbCBpc1Bs
YXlpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJuIG1faXNFZmZlY3RpdmVseVBsYXlpbmdBdWRpbzsg
fQorICAgIGJvb2wgaXNDb25uZWN0ZWQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNy
ZWF0ZURlc3RpbmF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCmluZGV4IGUyMGVmNDYyNDhi
MDg1Yzc2Yzc0MDRmZDk0MWFkZGQ5NjU2NGZhOTQuLjZkODdhNmRiMDEyOGRmMThiNTcwYTdlMTVk
NmRiYjYwOTQ1ZWExNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC0xNjksNiArMTY5LDgg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlc2V0SGF2ZUV2ZXJSZWdpc3RlcmVkQXNO
b3dQbGF5aW5nQXBwbGljYXRpb25Gb3JUZXN0aW5nKCkgeyB9OwogCisgICAgYm9vbCBpc0FwcGxp
Y2F0aW9uSW5CYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9pc0FwcGxpY2F0aW9uSW5CYWNr
Z3JvdW5kOyB9CisKIHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgUGxhdGZvcm1NZWRpYVNl
c3Npb247CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI+IGNyZWF0ZSgpOwpAQCAtMTgxLDcgKzE4Myw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IGZvckVhY2hTZXNzaW9uSW5Hcm91cChNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIsIGNvbnN0
IEZ1bmN0aW9uPHZvaWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mKT4mKTsKICAgICBib29sIGFueU9m
U2Vzc2lvbnMoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYp
PiYpIGNvbnN0OwogCi0gICAgYm9vbCBpc0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5kOyB9CiAgICAgdm9pZCBtYXliZURl
YWN0aXZhdGVBdWRpb1Nlc3Npb24oKTsKICAgICBib29sIG1heWJlQWN0aXZhdGVBdWRpb1Nlc3Np
b24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbC5tbQppbmRleCAzYzgxOGZiMjE4MzkzMmMyMTBmNTdhYWU2MDAwMzIzN2U0YWQ0MmFk
Li45MDQzNDU1YTVmNjE4NmYzZmY4YWY3OTgwN2UxOTQyNGViMGRkOGZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDAy
LDYgKzQwMiwxMSBAQCBzdGF0aWMgUmV0YWluUHRyPFdLUHJvY2Vzc1Bvb2w+JiBzaGFyZWRQcm9j
ZXNzUG9vbCgpCiAjZW5kaWYKIH0KIAorLSAoQk9PTClfaGFzQXVkaWJsZU1lZGlhQWN0aXZpdHkK
K3sKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5oYXNBdWRpYmxlTWVkaWFBY3Rpdml0eSgpID8g
WUVTIDogTk87Cit9CisKIC0gKEJPT0wpX3JlcXVlc3RXZWJQcm9jZXNzVGVybWluYXRpb246KHBp
ZF90KXBpZAogewogICAgIGZvciAoYXV0byYgcHJvY2VzcyA6IF9wcm9jZXNzUG9vbC0+cHJvY2Vz
c2VzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggNmUxNTU3YWM1YjFkZTk2ODIwMjI5NzdkZDdk
Y2YzMzY0Yjg2MTZmMi4uMGNiMWJlMjM4NzMyZDIxYzY0OTBkYTYxMmI1YWYzOWMzMTU0MDA1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTExOCw2ICsxMTgsNyBAQAogLSAodm9pZClfY2xlYXJXZWJQ
cm9jZXNzQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsK
IC0gKHZvaWQpX3NldFVzZVNlcGFyYXRlU2VydmljZVdvcmtlclByb2Nlc3M6KEJPT0wpZm9yY2VT
ZXJ2aWNlV29ya2VyUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3Mo
MTMuNCkpOwogLSAocGlkX3QpX2dwdVByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CistIChCT09MKV9oYXNBdWRpYmxlTWVkaWFBY3Rpdml0
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
LSAoQk9PTClfcmVxdWVzdFdlYlByb2Nlc3NUZXJtaW5hdGlvbjoocGlkX3QpcGlkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8vIFRlc3Qgb25seS4gUmV0dXJu
cyB3ZWIgcHJvY2Vzc2VzIHJ1bm5pbmcgd2ViIHBhZ2VzIChkb2VzIG5vdCBpbmNsdWRlIHdlYiBw
cm9jZXNzZXMgcnVubmluZyBzZXJ2aWNlIHdvcmtlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxNTc0MDMzOTgxZTI4MTEwNGNmNzI0N2Y3OWEzOWM1ZDUy
Yzg3NTdlLi4wZWE5OTM4ODk2OWM1Zjc3NGJkODNhZTJiNzJmMmM0YjFkZWMwNzM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTUyNSw2ICs1MjUsOCBAQCBw
dWJsaWM6CiAKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBjcmVhdGVOZXdXZWJQcm9jZXNzKFdl
YnNpdGVEYXRhU3RvcmUqLCBXZWJQcm9jZXNzUHJveHk6OkNhcHRpdmVQb3J0YWxNb2RlLCBXZWJQ
cm9jZXNzUHJveHk6OklzUHJld2FybWVkID0gV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6
Tm8sIFdlYkNvcmU6OkNyb3NzT3JpZ2luTW9kZSA9IFdlYkNvcmU6OkNyb3NzT3JpZ2luTW9kZTo6
U2hhcmVkKTsKIAorICAgIGJvb2wgaGFzQXVkaWJsZU1lZGlhQWN0aXZpdHkoKSBjb25zdCB7IHJl
dHVybiAhIW1fYXVkaWJsZU1lZGlhQWN0aXZpdHk7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIHBs
YXRmb3JtSW5pdGlhbGl6ZSgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMTEyZWFkYWRhZTkyMjQwZjg1YTA3YmJjMDdjYTBjYTk0YjI1MDVm
OS4uZGE5MTJiMjQ0NmFhYTg1YzE1MDAwZmYxZGI3NmY1YzkzODVmOTM1MiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIyLTAzLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBB
dWRpb0NvbnRleHQgaXMgc3VzcGVuZGVkIG9uIGlPUyB3aGVuIHBhZ2UgaXMgYmFja2dyb3VuZGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4NzgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2F1ZGlvLWNvbnRleHQtcGxheWluZy5odG1sOgor
CiAyMDIyLTAzLTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYWtlIE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0aCB0YWtlIGEgU3RyaW5nVmll
dwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQ
cm9jZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9j
ZXNzLm1tCmluZGV4IDkyM2MzODMzOGMyN2QxZGQ2MDg4MGIzYTg4YzJiNDA2OTU5YWE0OTMuLjY4
NDhmNTYxMDA4YWIzYWYzZmNiODE0NjZlY2M1MzhkMzJhMmQzNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KQEAgLTc2NCwz
ICs3NjQsNDEgQEAgVEVTVChHUFVQcm9jZXNzLCBFeGl0c1VuZGVyTWVtb3J5UHJlc3N1cmVXZWJB
dWRpb05vblJlbmRlcmluZ0F1ZGlvQ29udGV4dCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpz
bGVlcCgwLjUpOwogICAgIEVYUEVDVF9FUSgwLCBbY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNz
UG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdKTsKIH0KKworVEVTVChHUFVQcm9jZXNzLCBWYWxp
ZGF0ZVdlYkF1ZGlvTWVkaWFQcm9jZXNzaW5nQXNzZXJ0aW9uKQoreworICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleUZvclRlc3RpbmcoKF9fYnJpZGdl
IFdLUHJlZmVyZW5jZXNSZWYpW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLCB0cnVlLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCIp
KTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgNDAwLCA0MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBh
Z2VOYW1lZDpAImF1ZGlvLWNvbnRleHQtcGxheWluZyJdOworCisgICAgLy8gZXZhbHVhdGVKYXZh
U2NyaXB0IGdpdmVzIHVzIHRoZSB1c2VyIGdlc3R1cmUgd2UgbmVlZCB0byByZWxpYWJseSBzdGFy
dCBhdWRpbyBwbGF5YmFjayBvbiBhbGwgcGxhdGZvcm1zLgorICAgIF9fYmxvY2sgYm9vbCBkb25l
ID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2VuZXJhdGVBdWRp
b0luTWVkaWFTdHJlYW1UcmFjaygpIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNF
cnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoIWVycm9yKTsKKyAgICAgICAgZG9u
ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KworICAgIC8vIEEgR1BVUHJvY2VzcyBzaG91bGQgZ2V0IGxhdW5jaGVkLgorICAgIHdoaWxlICgh
W2NvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSkK
KyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC4xKTsKKworICAgIC8vIFRoZXJl
IHNob3VsZCBiZSBubyBhdWRpYmxlIGFjdGl2aXR5LgorICAgIEVYUEVDVF9GQUxTRShbY29uZmln
dXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCBfaGFzQXVkaWJsZU1lZGlhQWN0aXZpdHldKTsKKwor
ICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ0cmFu
c2l0aW9uQXVkaW9Ub1NwZWFrZXJzKCkiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBO
U0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfVFJVRSghZXJyb3IpOworICAgICAgICBk
b25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworCisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIGF1ZGlibGUgYWN0aXZpdHkuCisgICAgaW50IGNv
dW50ZXIgPSAyMDsKKyAgICB3aGlsZSAoLS1jb3VudGVyICYmICFbY29uZmlndXJhdGlvbi5nZXQo
KS5wcm9jZXNzUG9vbCBfaGFzQXVkaWJsZU1lZGlhQWN0aXZpdHldKQorICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworCisgICAgRVhQRUNUX1RSVUUoW2NvbmZpZ3VyYXRp
b24uZ2V0KCkucHJvY2Vzc1Bvb2wgX2hhc0F1ZGlibGVNZWRpYUFjdGl2aXR5XSk7Cit9CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2F1ZGlvLWNvbnRl
eHQtcGxheWluZy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9h
dWRpby1jb250ZXh0LXBsYXlpbmcuaHRtbAppbmRleCBiNTFiNzRmYzcxMGYwYjllNWViOGU3MTIx
MTdhZTE5NGQ1ZmM0MjRlLi5iOTFkNDQ3YTczMzRkNGI2ZTc5ZjAxMzQ0MmJkYzJlMWEwNjVjOWVm
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2F1ZGlv
LWNvbnRleHQtcGxheWluZy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvYXVkaW8tY29udGV4dC1wbGF5aW5nLmh0bWwKQEAgLTIsMTMgKzIsMzggQEAKIDxo
dG1sPgogPGJvZHk+CiA8c2NyaXB0PgordmFyIGNvbnRleHQ7Cit2YXIgb3NjaWxsYXRvcjsKIGZ1
bmN0aW9uIHN0YXJ0UGxheWluZygpCiB7CisgICAgaWYgKGNvbnRleHQpCisgICAgICAgIGNvbnRl
eHQuY2xvc2UoKTsKKwogICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7Ci0gICAgbGV0
IG9zY2lsbGF0b3IgPSBuZXcgT3NjaWxsYXRvck5vZGUoY29udGV4dCk7CisgICAgb3NjaWxsYXRv
ciA9IG5ldyBPc2NpbGxhdG9yTm9kZShjb250ZXh0KTsKICAgICBvc2NpbGxhdG9yLmNvbm5lY3Qo
Y29udGV4dC5kZXN0aW5hdGlvbik7CiAgICAgb3NjaWxsYXRvci5zdGFydCgpOwogfQorCitmdW5j
dGlvbiBnZW5lcmF0ZUF1ZGlvSW5NZWRpYVN0cmVhbVRyYWNrKCkKK3sKKyAgICBpZiAoY29udGV4
dCkKKyAgICAgICAgY29udGV4dC5jbG9zZSgpOworCisgICAgY29udGV4dCA9IG5ldyBBdWRpb0Nv
bnRleHQoKTsKKyAgICBvc2NpbGxhdG9yID0gbmV3IE9zY2lsbGF0b3JOb2RlKGNvbnRleHQpOwor
CisgICAgY29uc3QgbWVkaWFTdHJlYW1EZXN0aW5hdGlvbiA9IGNvbnRleHQuY3JlYXRlTWVkaWFT
dHJlYW1EZXN0aW5hdGlvbigpOworICAgIG9zY2lsbGF0b3IuY29ubmVjdChtZWRpYVN0cmVhbURl
c3RpbmF0aW9uKTsKKyAgICBvc2NpbGxhdG9yLnN0YXJ0KCk7Cit9CisKK2Z1bmN0aW9uIHRyYW5z
aXRpb25BdWRpb1RvU3BlYWtlcnMoKQoreworICAgIGlmIChjb250ZXh0KQorICAgICAgICBvc2Np
bGxhdG9yLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7Cit9CisKIDwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJkYTFhOGViZTQ3MjZhZTI3YTYyN2RmNzNkYjQ4MTA5MjE0
YTdmY2QuLjA0MDIwZjIwNmI2YWFhZGFlNzYwNWNmYWE5MDQ3ZGJiMTAxNDU1NjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAyMi0wMy0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgQXVkaW9Db250ZXh0IGlzIHN1c3BlbmRlZCBvbiBpT1Mgd2hlbiBwYWdl
IGlzIGJhY2tncm91bmRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM3ODc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3ZWJhdWRpby9zdXNwZW5kLWNvbnRleHQtd2hpbGUtYmFja2dyb3VuZGVkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vc3VzcGVuZC1jb250ZXh0LXdo
aWxlLWJhY2tncm91bmRlZC5odG1sOiBBZGRlZC4KKwogMjAyMi0wMy0xNCAgTGF1cm8gTW91cmEg
IDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gVW5yZXZpZXdlZCwgZ2FyZGVu
aW5nIGNyYXNoIGFuZCB0aW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9z
dXNwZW5kLWNvbnRleHQtd2hpbGUtYmFja2dyb3VuZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3N1c3BlbmQtY29udGV4dC13aGlsZS1iYWNrZ3JvdW5kZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRmYzY4MjRmNjI4ZmM0ZjI0ZWIzZjkyMmY1NmUyODEyMjUzMmM3ZmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdXNwZW5kLWNvbnRleHQt
d2hpbGUtYmFja2dyb3VuZGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBU
ZXN0cyB0aGF0IG1lZGlhIHNlc3Npb24gaW50ZXJydXB0aW9uIGRvZXMgbm90IGNhdXNlIEF1ZGlv
Q29udGV4dCBpbnRlcnJ1cHRpb24gZm9yIEF1ZGlvQ29udGV4dCB0aGF0IGRvIG5vdCBvdXRwdXQg
YXVkaW8KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3VzcGVuZC1jb250ZXh0
LXdoaWxlLWJhY2tncm91bmRlZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3VzcGVuZC1j
b250ZXh0LXdoaWxlLWJhY2tncm91bmRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5ZDFkYWJjNmQxYzc3
MTI2M2NkNDZjMDQ4OWI5MTgxMjcyZGZjMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9zdXNwZW5kLWNvbnRleHQtd2hpbGUtYmFja2dyb3VuZGVkLmh0bWwKQEAgLTAs
MCArMSwxMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorcHJv
bWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICByZXR1cm47CisgICAgaW50ZXJuYWxzLnNldE1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucygi
V2ViQXVkaW8iLCAiYmFja2dyb3VuZHByb2Nlc3NwbGF5YmFja3Jlc3RyaWN0ZWQiKTsKKworICAg
IC8vIFJlZ3VsYXIgY29udGV4dCB3aG8gaXMgc2V0dGluZyBpdHMgZGVzdGluYXRpb24gdXBmcm9u
dCwgaXQgc2hvdWxkIGJlIGludGVycnVwdGVkL3VuaW50ZXJydXB0ZWQgZm9sbG93aW5nIGJhY2tn
cm91bmQgaW50ZXJydXB0aW9ucy4KKyAgICB2YXIgY29udGV4dDEgPSBuZXcgQXVkaW9Db250ZXh0
OworICAgIC8vIENvbnRleHQgd2hvIGlzIHNldHRpbmcgaXRzIGRlc3RpbmF0aW9uIHRvIGEgbWVk
aWEgc3RyZWFtIHRyYWNrIHRoZW4gdG8gdGhlIGRlZmF1bHQgZGVzdGluYXRpb24uIEl0IHNob3Vs
ZCBub3QgYmUgaW50ZXJydXB0ZWQgdW50aWwgaXRzIGRlc3RpbmF0aW9uIGNoYW5nZXMuCisgICAg
dmFyIGNvbnRleHQyID0gbmV3IEF1ZGlvQ29udGV4dDsKKyAgICAvLyBDb250ZXh0IHdobyBpcyBz
ZXR0aW5nIGl0cyBkZXN0aW5hdGlvbiB0byBhIG1lZGlhIHN0cmVhbSB0cmFjay4gSXQgc2hvdWxk
IG5vdCBiZSBpbnRlcnJ1cHRlZC4KKyAgICB2YXIgY29udGV4dDMgPSBuZXcgQXVkaW9Db250ZXh0
OworICAgIC8vIENvbnRleHQgd2hvIGlzIGNyZWF0ZWQgd2hpbGUgaW4gdGhlIGJhY2tncm91bmQs
IGl0cyBkZXN0aW5hdGlvbiBhcyBhIG1lZGlhIHN0cmVhbSB0cmFjayB0aGVuIHRoZSBkZWZhdWx0
IGRlc3RpbmF0aW9uLiBJdCBzaG91bGQgbm90IGJlIGludGVycnVwdGVkIHVudGlsIGl0cyBkZXN0
aW5hdGlvbiBjaGFuZ2VzLgorICAgIHZhciBjb250ZXh0NCA9IG5ldyBBdWRpb0NvbnRleHQ7CisK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKKyAgICAgICAgY29udGV4dDEuY2xvc2UoKTsKKyAg
ICAgICAgY29udGV4dDIuY2xvc2UoKTsKKyAgICAgICAgY29udGV4dDMuY2xvc2UoKTsKKyAgICAg
ICAgY29udGV4dDQuY2xvc2UoKTsKKyAgICB9KTsKKworICAgIHZhciBzb3VyY2UxID0gY29udGV4
dDEuY3JlYXRlQ29uc3RhbnRTb3VyY2UoKTsKKyAgICBzb3VyY2UxLmNvbm5lY3QoY29udGV4dDEu
ZGVzdGluYXRpb24pOworCisgICAgdmFyIHNvdXJjZTIgPSBjb250ZXh0Mi5jcmVhdGVDb25zdGFu
dFNvdXJjZSgpOworICAgIHZhciBkZXN0aW5hdGlvbjIgPSBjb250ZXh0Mi5jcmVhdGVNZWRpYVN0
cmVhbURlc3RpbmF0aW9uKCk7CisgICAgc291cmNlMi5jb25uZWN0KGRlc3RpbmF0aW9uMik7CisK
KyAgICB2YXIgc291cmNlMyA9IGNvbnRleHQzLmNyZWF0ZUNvbnN0YW50U291cmNlKCk7CisgICAg
dmFyIGRlc3RpbmF0aW9uMyA9IGNvbnRleHQzLmNyZWF0ZU1lZGlhU3RyZWFtRGVzdGluYXRpb24o
KTsKKyAgICBzb3VyY2UzLmNvbm5lY3QoZGVzdGluYXRpb24zKTsKKworICAgIGxldCBzdGF0ZUNo
YW5nZVByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAg
IGNvbnRleHQxLm9uc3RhdGVjaGFuZ2UgPSByZXNvbHZlOworICAgICAgICBzZXRUaW1lb3V0KCgp
ID0+IHJlamVjdCgic3RhcnQgcHJvbWlzZSB0aW1lZCBvdXQiKSwgNTAwMCk7CisgICAgfSk7CisK
KyAgICBzb3VyY2UxLnN0YXJ0KCk7CisgICAgc291cmNlMi5zdGFydCgpOworICAgIHNvdXJjZTMu
c3RhcnQoKTsKKworICAgIGF3YWl0IHN0YXRlQ2hhbmdlUHJvbWlzZTsKKyAgICBhd2FpdCBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTApKTsKKworICAgIGFzc2Vy
dF9lcXVhbHMoY29udGV4dDEuc3RhdGUsICJydW5uaW5nIiwgInRlc3QxYSIpOworICAgIGFzc2Vy
dF9lcXVhbHMoY29udGV4dDIuc3RhdGUsICJydW5uaW5nIiwgInRlc3QxYiIpOworICAgIGFzc2Vy
dF9lcXVhbHMoY29udGV4dDMuc3RhdGUsICJydW5uaW5nIiwgInRlc3QxYyIpOworCisgICAgc3Rh
dGVDaGFuZ2VQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAg
ICAgICBjb250ZXh0MS5vbnN0YXRlY2hhbmdlID0gcmVzb2x2ZTsKKyAgICAgICAgc2V0VGltZW91
dCgoKSA9PiByZWplY3QoImNvbnRleHQxIGludGVycnVwdGlvbiBwcm9taXNlIHRpbWVkIG91dCIp
LCA1MDAwKTsKKyAgICB9KQorICAgIGludGVybmFscy5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dy
b3VuZChmYWxzZSk7CisKKyAgICBhd2FpdCBzdGF0ZUNoYW5nZVByb21pc2U7CisgICAgYXdhaXQg
bmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwKSk7CisKKyAgICBh
c3NlcnRfZXF1YWxzKGNvbnRleHQxLnN0YXRlLCAiaW50ZXJydXB0ZWQiLCAidGVzdDJhIik7Cisg
ICAgYXNzZXJ0X2VxdWFscyhjb250ZXh0Mi5zdGF0ZSwgInJ1bm5pbmciLCAidGVzdDJiIik7Cisg
ICAgYXNzZXJ0X2VxdWFscyhjb250ZXh0My5zdGF0ZSwgInJ1bm5pbmciLCAidGVzdDJjIik7CisK
KyAgICB2YXIgc291cmNlNCA9IGNvbnRleHQ0LmNyZWF0ZUNvbnN0YW50U291cmNlKCk7CisgICAg
dmFyIGRlc3RpbmF0aW9uNCA9IGNvbnRleHQ0LmNyZWF0ZU1lZGlhU3RyZWFtRGVzdGluYXRpb24o
KTsKKyAgICBzb3VyY2U0LmNvbm5lY3QoZGVzdGluYXRpb240KTsKKworICAgIHN0YXRlQ2hhbmdl
UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgY29u
dGV4dDIub25zdGF0ZWNoYW5nZSA9IHJlc29sdmU7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4g
cmVqZWN0KCJjb250ZXh0MiBpbnRlcnJ1cHRpb24gcHJvbWlzZSB0aW1lZCBvdXQiKSwgNTAwMCk7
CisgICAgfSk7CisgICAgc291cmNlMi5jb25uZWN0KGNvbnRleHQyLmRlc3RpbmF0aW9uKTsKKwor
ICAgIGF3YWl0IHN0YXRlQ2hhbmdlUHJvbWlzZTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTApKTsKKworICAgIGFzc2VydF9lcXVhbHMoY29u
dGV4dDEuc3RhdGUsICJpbnRlcnJ1cHRlZCIsICJ0ZXN0M2EiKTsKKyAgICBhc3NlcnRfZXF1YWxz
KGNvbnRleHQyLnN0YXRlLCAiaW50ZXJydXB0ZWQiLCAidGVzdDNiIik7CisgICAgYXNzZXJ0X2Vx
dWFscyhjb250ZXh0My5zdGF0ZSwgInJ1bm5pbmciLCAidGVzdDNjIik7CisgICAgYXNzZXJ0X2Vx
dWFscyhjb250ZXh0NC5zdGF0ZSwgInJ1bm5pbmciLCAidGVzdDNkIik7CisKKyAgICBzdGF0ZUNo
YW5nZVByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAg
IGNvbnRleHQ0Lm9uc3RhdGVjaGFuZ2UgPSByZXNvbHZlOworICAgICAgICBzZXRUaW1lb3V0KCgp
ID0+IHJlamVjdCgiY29udGV4dDQgaW50ZXJydXB0aW9uIHByb21pc2UgdGltZWQgb3V0IiksIDUw
MDApOworICAgIH0pOworICAgIHNvdXJjZTQuY29ubmVjdChjb250ZXh0NC5kZXN0aW5hdGlvbik7
CisKKyAgICBhd2FpdCBzdGF0ZUNoYW5nZVByb21pc2U7CisgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwKSk7CisKKyAgICBhc3NlcnRfZXF1YWxz
KGNvbnRleHQxLnN0YXRlLCAiaW50ZXJydXB0ZWQiLCAidGVzdDRxIik7CisgICAgYXNzZXJ0X2Vx
dWFscyhjb250ZXh0Mi5zdGF0ZSwgImludGVycnVwdGVkIiwgInRlc3Q0YiIpOworICAgIGFzc2Vy
dF9lcXVhbHMoY29udGV4dDMuc3RhdGUsICJydW5uaW5nIiwgInRlc3Q0YyIpOworICAgIGFzc2Vy
dF9lcXVhbHMoY29udGV4dDQuc3RhdGUsICJpbnRlcnJ1cHRlZCIsICJ0ZXN0NGQiKTsKKworICAg
IHN0YXRlQ2hhbmdlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
KyAgICAgICAgY29udGV4dDIub25zdGF0ZWNoYW5nZSA9IHJlc29sdmU7CisgICAgICAgIHNldFRp
bWVvdXQoKCkgPT4gcmVqZWN0KCJjb250ZXh0MiB1bmludGVycnVwdGlvbiBwcm9taXNlIHRpbWVk
IG91dCIpLCA1MDAwKTsKKyAgICB9KTsKKyAgICBpbnRlcm5hbHMuYXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKGZhbHNlKTsKKworICAgIGF3YWl0IHN0YXRlQ2hhbmdlUHJvbWlzZTsKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTApKTsK
KworICAgIGFzc2VydF9lcXVhbHMoY29udGV4dDEuc3RhdGUsICJydW5uaW5nIiwgInRlc3Q1YSIp
OworICAgIGFzc2VydF9lcXVhbHMoY29udGV4dDIuc3RhdGUsICJydW5uaW5nIiwgInRlc3Q1YiIp
OworICAgIGFzc2VydF9lcXVhbHMoY29udGV4dDMuc3RhdGUsICJydW5uaW5nIiwgInRlc3Q1YyIp
OworICAgIGFzc2VydF9lcXVhbHMoY29udGV4dDQuc3RhdGUsICJydW5uaW5nIiwgInRlc3Q1ZCIp
OworfSwgIlRlc3RzIHRoYXQgbWVkaWEgc2Vzc2lvbiBpbnRlcnJ1cHRpb24gZG9lcyBub3QgY2F1
c2UgQXVkaW9Db250ZXh0IGludGVycnVwdGlvbiBmb3IgQXVkaW9Db250ZXh0IHRoYXQgZG8gbm90
IG91dHB1dCBhdWRpbyIpOworPC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>