<?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>208740</bug_id>
          
          <creation_ts>2020-03-06 15:39:43 -0800</creation_ts>
          <short_desc>Hit-test CALayers on the scrolling thread for async frame/overflow scrolling</short_desc>
          <delta_ts>2020-03-06 17:47:26 -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>New Bugs</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1626919</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-06 15:39:43 -0800</bug_when>
    <thetext>Hit-test CALayers on the scrolling thread for async frame/overflow scrolling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626929</commentid>
    <comment_count>1</comment_count>
      <attachid>392793</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-06 15:49:49 -0800</bug_when>
    <thetext>Created attachment 392793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626930</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-06 15:49:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/48028836&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626943</commentid>
    <comment_count>3</comment_count>
      <attachid>392793</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-06 16:07:19 -0800</bug_when>
    <thetext>Comment on attachment 392793
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +		Implement hit-testing in the scrolling thread so we can determine which overflow/subframe

Tabs?‽!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626957</commentid>
    <comment_count>4</comment_count>
      <attachid>392799</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-06 16:26:36 -0800</bug_when>
    <thetext>Created attachment 392799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627037</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-06 17:47:26 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/258044/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392793</attachid>
            <date>2020-03-06 15:49:49 -0800</date>
            <delta_ts>2020-03-06 16:07:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208740-20200306154948.patch</filename>
            <type>text/plain</type>
            <size>36596</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODk0MWVkZDU5ZjMzZTg2
Nzg3OTg2MDc0NjhmMGM1MDRhZjYxZDM0OC4uODFkNjA1OTBkZWZjY2E4OTIwOTAyYWNlZWQ1Yjdj
ZWY5NmZjMTJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTAzLTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEhpdC10ZXN0IENB
TGF5ZXJzIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkIGZvciBhc3luYyBmcmFtZS9vdmVyZmxvdyBz
Y3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODc0MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwMjg4MzY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKwkJSW1wbGVtZW50IGhpdC10ZXN0aW5nIGluIHRo
ZSBzY3JvbGxpbmcgdGhyZWFkIHNvIHdlIGNhbiBkZXRlcm1pbmUgd2hpY2ggb3ZlcmZsb3cvc3Vi
ZnJhbWUKKwkJdG8gc2Nyb2xsIHdpdGhvdXQgaGl0dGluZyB0aGUgbWFpbiB0aHJlYWQuCisJCQor
CQlTY3JvbGxpbmdUcmVlTWFjIG92ZXJyaWRlcyBzY3JvbGxpbmdOb2RlRm9yUG9pbnQoKSBhbmQg
aGl0LXRlc3RzIHRocm91Z2ggQ0FMYXllcnMsIHN0YXJ0aW5nIGF0IHRoZQorCQlyb290IGNvbnRl
bnQgbGF5ZXIuIExvY2tpbmcgZW5zdXJlcyB0aGF0IHRoZSBDQUxheWVyIHRyZWUgZG9lc24ndCBj
aGFuZ2Ugd2hpbGUgd2UncmUgaGl0LXRlc3RpbmcgaXQuCisJCVdlIGNvbGxlY3QgbGF5ZXJzIGZv
ciB0aGUgZ2l2ZW4gcG9pbnQgaW4gYmFjay10by1mcm9udCBvcmRlciBtdWNoIGxpa2UgdGhlIGlP
UyBjb2RlIF93ZWJfZmluZERlc2NlbmRhbnRWaWV3QXRQb2ludAorCQkodG9vIGRpZmZlcmVudCB0
byBzaGFyZSB0aG91Z2gpLCBhbmQgY29uc3VsdCBldmVudCByZWdpb25zIG9uIFBsYXRmb3JtQ0FM
YXllckNvY29hJ3MgdG8gZGV0ZXJtaW5lIGlmIHRoZQorCQlwb2ludCBpcyBpbnNpZGUgdGhlIHBh
cnQgb2YgdGhlIGxheWVyIHRoYXQgc2hvdWxkIHJlY2VpdmUgZXZlbnRzLgorCQkKKwkJVG8gaGFu
ZGxlIHRoZSBjb21wbGV4IHN0YWNraW5nL2NvbnRhaW5pbmcgYmxvY2sgY2FzZXMsIGlzU2Nyb2xs
ZWRCeSgpIGNvbnN1bHRzIHRoZSBzY3JvbGxpbmcgdHJlZS4KKwkJCisJCUZvciB0ZXN0aW5nLCBm
aXggaXQgc28gdGhhdCBtdWx0aXBsZSBjYWxscyB0byBtb25pdG9yV2hlZWxFdmVudHMoKSBpbiBh
IHNpbmdsZSB0ZXN0IGVhY2ggc3RhcnQKKwkJd2l0aCBjbGVhbiBzdGF0ZS4KKworICAgICAgICBU
ZXN0czogZmFzdC9zY3JvbGxpbmcvbWFjL2Fic29sdXRlLWluLW92ZXJmbG93LXNjcm9sbC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9tYWMvYXN5bmMtc2Nyb2xsLW92ZXJmbG93
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL21hYy9tb3ZlLW5vZGUtaW4tb3Zl
cmZsb3ctc2Nyb2xsLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL21hYy9vdmVy
bGFwcGVkLW92ZXJmbG93LXNjcm9sbC5odG1sCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmhhbmRs
ZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5n
Tm9kZUZvclBvaW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1h
Yy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLm1tOgor
ICAgICAgICAoY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBvaW50KToKKyAgICAgICAgKHNjcm9s
bGluZ05vZGVJREZvckxheWVyKToKKyAgICAgICAgKGlzU2Nyb2xsZWRCeSk6CisgICAgICAgIChT
Y3JvbGxpbmdUcmVlTWFjOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQpOgorICAgICAgICAqIHRlc3Rp
bmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmVUZXN0U3VwcG9y
dDo6bW9uaXRvcldoZWVsRXZlbnRzKTogTWFrZSBzdXJlIHRoYXQgZWFjaCBjYWxsIHRvIGV2ZW50
U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpIGNsZWFycyBwcmV2aW91cyBzdGF0ZS4KKwogMjAy
MC0wMy0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNb3ZlIHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyB0byBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiYWFjYmM5NWQxZGQyYjMxNDAyYjRlNDVlYmZkODY4MzNhOTI3
YWQ1Li5hMjFjOTljODMxNTcyYmJjOWRkYWI0MDY3ZWM0MzdlZTc5YjU1OGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIwLTAzLTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgorCisgICAgICAgIEhpdC10ZXN0IENBTGF5ZXJzIG9uIHRoZSBzY3JvbGxpbmcg
dGhyZWFkIGZvciBhc3luYyBmcmFtZS9vdmVyZmxvdyBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc0MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDgwMjg4MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTWFrZSBzdXJlIHRoYXQgZWFjaCBjYWxsIHRvIGV2ZW50U2VuZGVyLm1vbml0
b3JXaGVlbEV2ZW50cygpIGNsZWFycyBwcmV2aW91cyBzdGF0ZS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdL
QnVuZGxlUGFnZVN0YXJ0TW9uaXRvcmluZ1Njcm9sbE9wZXJhdGlvbnMpOgorCiAyMDIwLTAzLTA2
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUg
c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIHRvIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmlu
ZGV4IDE1YTQwMmZhMTk4NjYxOTg0ZTBmYzExNzg1YTI4NGViY2I0YzQxNjAuLjU3NTY1NTQxMWRj
OWRiZWUxYTk2YmMyNDczMTMwYTFmOTVmNDYzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgU2Nyb2xs
aW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHcKIAogICAgIGlmIChtX3Jvb3ROb2RlKSB7CiAgICAgICAgIEZsb2F0
UG9pbnQgcG9zaXRpb24gPSB3aGVlbEV2ZW50LnBvc2l0aW9uKCk7Ci0gICAgICAgIFNjcm9sbGlu
Z1RyZWVOb2RlKiBub2RlID0gc2Nyb2xsaW5nTm9kZUZvclBvaW50KHBvc2l0aW9uKTsKKyAgICAg
ICAgYXV0byBub2RlID0gc2Nyb2xsaW5nTm9kZUZvclBvaW50KHBvc2l0aW9uKTsKIAogICAgICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6Omhh
bmRsZVdoZWVsRXZlbnQgZm91bmQgbm9kZSAiIDw8IChub2RlID8gbm9kZS0+c2Nyb2xsaW5nTm9k
ZUlEKCkgOiAwKSA8PCAiIGZvciBwb2ludCAiIDw8IHBvc2l0aW9uIDw8ICJcbiIpOwogCkBAIC0x
MjgsMTAgKzEyOCwxMCBAQCBTY3JvbGxpbmdFdmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5k
bGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgdwogICAgIHJldHVybiBTY3Jv
bGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CiB9CiAKLVNjcm9sbGluZ1RyZWVO
b2RlKiBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQoRmxvYXRQb2ludCkKK1Jl
ZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nTm9kZUZvclBv
aW50KEZsb2F0UG9pbnQpCiB7CiAgICAgQVNTRVJUKGFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xs
aW5nRW5hYmxlZCgpKTsKLSAgICByZXR1cm4gbV9yb290Tm9kZS5nZXQoKTsKKyAgICByZXR1cm4g
bV9yb290Tm9kZTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVWaWV3cG9ydENo
YW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQsIGRvdWJsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCAxMjhmMjBjMGExNTAx
MjdjY2I1OGI3ZWRjZDUxZWI3ZDMxMTM0ZWFjLi5kYTIzM2YwMWUwNmNhMzQzZjYxYzdiNzAxZDAx
YzgwNTg2MWQ5ZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCkBAIC0xNzcsNyArMTc3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbm90aWZ5
UmVsYXRlZE5vZGVzUmVjdXJzaXZlKFNjcm9sbGluZ1RyZWVOb2RlJik7CiAKLSAgICBTY3JvbGxp
bmdUcmVlTm9kZSogc2Nyb2xsaW5nTm9kZUZvclBvaW50KEZsb2F0UG9pbnQpOworICAgIHZpcnR1
YWwgUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBzY3JvbGxpbmdOb2RlRm9yUG9pbnQoRmxvYXRQ
b2ludCk7CiAKICAgICBMb2NrIG1fdHJlZU11dGV4OyAvLyBQcm90ZWN0cyB0aGUgc2Nyb2xsaW5n
IHRyZWUuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCmluZGV4
IDBiZDA0ZmMyMGZiNThiMjJmMjgzZjIwYjFmMDFjNDgxZjhkYjYyMmYuLjgzYWI2ZTQxOTk0OGZi
MTgzMmUyYjc4YzJiMDhkZGY3ODI4MDE3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVNYWMuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPiBjcmVhdGUoU2Nyb2xsaW5nVHJlZSYs
IFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIHZpcnR1YWwgflNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMoKTsKIAorICAgIFJldGFpblB0cjxDQUxheWVy
PiByb290Q29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdENvbnRlbnRzTGF5ZXI7
IH0KKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMo
U2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVN
YWMuaAppbmRleCBhZGU0YTdjNGRkMWI1ODE0YjdlMWY0ZmZhNzdmMzkyMWE4NmE4ZWFlLi44MDE0
ZDlhNjJkZDZkOWJkZTIxOGYzMjJkMWZkYmU1MTJhNzllZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKQEAgLTQwLDYg
KzQwLDggQEAgcHJpdmF0ZToKIAogICAgIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Ny
b2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgZmluYWw7
CiAKKyAgICBSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IHNjcm9sbGluZ05vZGVGb3JQb2ludChG
bG9hdFBvaW50KSBmaW5hbDsKKwogICAgIHZvaWQgbG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBm
aW5hbDsKICAgICB2b2lkIHVubG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBmaW5hbDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1h
Yy5tbQppbmRleCBkNDNiODkxODM2ZmRiMDAwYzJmODIzMTRiZjE3YTBhMDhmYzhlYjFjLi4yYjhl
MzVmOTgwZWZjNGIwMDgzY2IyMjFjYTk4ZWU3ZWU1ZTcxNzgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5tbQpAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVN
YWMuaCIKIAorI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogI2luY2x1ZGUgIlNjcm9sbGlu
Z1RyZWVGaXhlZE5vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVIb3N0aW5nTm9k
ZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaCIKQEAg
LTMzLDYgKzM0LDcgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlTWFjLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWROb2RlLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaCIKKyNpbmNsdWRlICJXZWJMYXllci5oIgog
CiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQp
CiAKQEAgLTcxLDYgKzczLDExMSBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1Ry
ZWVNYWM6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeQogICAgIHJldHVy
biBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKKwor
c3RhdGljIHZvaWQgY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBvaW50KFZlY3RvcjxDQUxheWVy
ICosIDE2PiYgbGF5ZXJzQXRQb2ludCwgQ0FMYXllciAqcGFyZW50LCBDR1BvaW50IHBvaW50KQor
eworICAgIGlmIChwYXJlbnQubWFza3NUb0JvdW5kcyAmJiAhW3BhcmVudCBjb250YWluc1BvaW50
OnBvaW50XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChDQUxheWVyICpsYXllciBpbiBb
cGFyZW50IHN1YmxheWVyc10pIHsKKyAgICAgICAgQ0FMYXllciAqbGF5ZXJXaXRoUmVzb2x2ZWRB
bmltYXRpb25zID0gbGF5ZXI7CisKKyAgICAgICAgaWYgKFtbbGF5ZXIgYW5pbWF0aW9uS2V5c10g
Y291bnRdKQorICAgICAgICAgICAgbGF5ZXJXaXRoUmVzb2x2ZWRBbmltYXRpb25zID0gW2xheWVy
IHByZXNlbnRhdGlvbkxheWVyXTsKKworICAgICAgICBDR1BvaW50IHN1YnZpZXdQb2ludCA9IFts
YXllcldpdGhSZXNvbHZlZEFuaW1hdGlvbnMgY29udmVydFBvaW50OnBvaW50IGZyb21MYXllcjpw
YXJlbnRdOworCisgICAgICAgIGF1dG8gaGFuZGxlc0V2ZW50ID0gWyZdIHsKKyAgICAgICAgICAg
IGlmIChDR1JlY3RJc0VtcHR5KFtsYXllcldpdGhSZXNvbHZlZEFuaW1hdGlvbnMgZnJhbWVdKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIGlmICghW2xheWVy
V2l0aFJlc29sdmVkQW5pbWF0aW9ucyBjb250YWluc1BvaW50OnN1YnZpZXdQb2ludF0pCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBhdXRvIHBsYXRmb3JtQ0FM
YXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5ZXIoKF9fYnJpZGdl
IHZvaWQqKWxheWVyKTsKKyAgICAgICAgICAgIGlmIChwbGF0Zm9ybUNBTGF5ZXIpIHsKKyAgICAg
ICAgICAgICAgICAvLyBTY3JvbGxpbmcgY2hhbmdlcyBib3VuZHNPcmlnaW4gb24gdGhlIHNjcm9s
bCBjb250YWluZXIgbGF5ZXIsIGJ1dCB3ZSBjb21wdXRlZCBpdHMgZXZlbnQgcmVnaW9uIGlnbm9y
aW5nIHNjcm9sbCBwb3NpdGlvbiwgc28gZmFjdG9yIG91dCBib3VuZHMgb3JpZ2luLgorICAgICAg
ICAgICAgICAgIEZsb2F0UG9pbnQgYm91bmRzT3JpZ2luID0gbGF5ZXIuYm91bmRzLm9yaWdpbjsK
KyAgICAgICAgICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSBzdWJ2aWV3UG9pbnQgLSB0
b0Zsb2F0U2l6ZShib3VuZHNPcmlnaW4pOworICAgICAgICAgICAgICAgIHJldHVybiBwbGF0Zm9y
bUNBTGF5ZXItPmV2ZW50UmVnaW9uQ29udGFpbnNQb2ludChJbnRQb2ludChsb2NhbFBvaW50KSk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfSgpOworCisgICAgICAgIGlmIChoYW5kbGVzRXZlbnQpCisgICAgICAgICAgICBs
YXllcnNBdFBvaW50LmFwcGVuZChsYXllcik7CisKKyAgICAgICAgaWYgKFtsYXllciBzdWJsYXll
cnNdKQorICAgICAgICAgICAgY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBvaW50KGxheWVyc0F0
UG9pbnQsIGxheWVyLCBzdWJ2aWV3UG9pbnQpOworICAgIH07Cit9CisKK3N0YXRpYyBTY3JvbGxp
bmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlERm9yTGF5ZXIoQ0FMYXllciAqbGF5ZXIpCit7CisgICAg
YXV0byBwbGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllckZv
ckxheWVyKChfX2JyaWRnZSB2b2lkKilsYXllcik7CisgICAgcmV0dXJuIHBsYXRmb3JtQ0FMYXll
ciA/IHBsYXRmb3JtQ0FMYXllci0+c2Nyb2xsaW5nTm9kZUlEKCkgOiAwOworfQorCitzdGF0aWMg
Ym9vbCBpc1Njcm9sbGVkQnkoY29uc3QgU2Nyb2xsaW5nVHJlZSYgdHJlZSwgU2Nyb2xsaW5nTm9k
ZUlEIHNjcm9sbGluZ05vZGVJRCwgQ0FMYXllciAqaGl0TGF5ZXIpCit7CisgICAgZm9yIChDQUxh
eWVyICpsYXllciA9IGhpdExheWVyOyBsYXllcjsgbGF5ZXIgPSBbbGF5ZXIgc3VwZXJsYXllcl0p
IHsKKyAgICAgICAgYXV0byBub2RlSUQgPSBzY3JvbGxpbmdOb2RlSURGb3JMYXllcihsYXllcik7
CisgICAgICAgIGlmIChub2RlSUQgPT0gc2Nyb2xsaW5nTm9kZUlEKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICAgICAgYXV0byogc2Nyb2xsaW5nTm9kZSA9IHRyZWUubm9kZUZvcklE
KG5vZGVJRCk7CisgICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94
eU5vZGU+KHNjcm9sbGluZ05vZGUpKSB7CisgICAgICAgICAgICBTY3JvbGxpbmdOb2RlSUQgYWN0
aW5nT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSUQgPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxQcm94eU5vZGU+KCpzY3JvbGxpbmdOb2RlKS5vdmVyZmxvd1Njcm9sbGluZ05vZGVJ
RCgpOworICAgICAgICAgICAgaWYgKGFjdGluZ092ZXJmbG93U2Nyb2xsaW5nTm9kZUlEID09IHNj
cm9sbGluZ05vZGVJRCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+KHNjcm9sbGluZ05v
ZGUpKSB7CisgICAgICAgICAgICBpZiAoZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWRO
b2RlPigqc2Nyb2xsaW5nTm9kZSkucmVsYXRlZE92ZXJmbG93U2Nyb2xsaW5nTm9kZXMoKS5jb250
YWlucyhzY3JvbGxpbmdOb2RlSUQpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworUmVmUHRyPFNjcm9sbGlu
Z1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlTWFjOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQoRmxvYXRQ
b2ludCBwb2ludCkKK3sKKyAgICBhdXRvKiByb290U2Nyb2xsaW5nTm9kZSA9IHJvb3ROb2RlKCk7
CisgICAgaWYgKCFyb290U2Nyb2xsaW5nTm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBMb2NrSG9sZGVyIGxvY2tIb2xkZXIobV9sYXllckhpdFRlc3RNdXRleCk7CisKKyAgICBh
dXRvIHJvb3RDb250ZW50c0xheWVyID0gc3RhdGljX2Nhc3Q8U2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYyo+KHJvb3RTY3JvbGxpbmdOb2RlKS0+cm9vdENvbnRlbnRzTGF5ZXIoKTsK
KworICAgIFZlY3RvcjxDQUxheWVyICosIDE2PiBsYXllcnNBdFBvaW50OworICAgIGNvbGxlY3RE
ZXNjZW5kYW50TGF5ZXJzQXRQb2ludChsYXllcnNBdFBvaW50LCByb290Q29udGVudHNMYXllci5n
ZXQoKSwgcG9pbnQpOworCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8
ICJTY3JvbGxpbmdUcmVlTWFjICIgPDwgdGhpcyA8PCAiIHNjcm9sbGluZ05vZGVGb3JQb2ludCAi
IDw8IHBvaW50IDw8ICIgZm91bmQgIiA8PCBsYXllcnNBdFBvaW50LnNpemUoKSA8PCAiIGxheWVy
cyIpOworI2lmICFMT0dfRElTQUJMRUQKKyAgICBmb3IgKGF1dG8gKmxheWVyIDogV1RGOjptYWtl
UmV2ZXJzZWRSYW5nZShsYXllcnNBdFBvaW50KSkKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNj
cm9sbGluZywgc3RyZWFtIDw8ICIgbGF5ZXIgIiA8PCBbbGF5ZXIgZGVzY3JpcHRpb25dIDw8ICIg
c2Nyb2xsaW5nIG5vZGUgIiA8PCBzY3JvbGxpbmdOb2RlSURGb3JMYXllcihsYXllcikpOworI2Vu
ZGlmCisKKyAgICBmb3IgKGF1dG8gKmxheWVyIDogV1RGOjptYWtlUmV2ZXJzZWRSYW5nZShsYXll
cnNBdFBvaW50KSkgeworICAgICAgICBhdXRvIG5vZGVJRCA9IHNjcm9sbGluZ05vZGVJREZvckxh
eWVyKGxheWVyKTsKKyAgICAgICAgCisgICAgICAgIGF1dG8qIHNjcm9sbGluZ05vZGUgPSBub2Rl
Rm9ySUQobm9kZUlEKTsKKyAgICAgICAgaWYgKCFpczxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZT4oc2Nyb2xsaW5nTm9kZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChpc1Njcm9sbGVkQnkoKnRoaXMsIG5vZGVJRCwgbGF5ZXJzQXRQb2ludC5sYXN0KCkp
KQorICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGluZ05vZGU7CisKKyAgICAgICAgLy8gRklYTUU6
IEhpdC10ZXN0IHNjcm9sbCBpbmRpY2F0b3IgbGF5ZXJzLgorICAgIH0KKworICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZU1hYyAiIDw8IHRoaXMg
PDwgIiBzY3JvbGxpbmdOb2RlRm9yUG9pbnQgIiA8PCBwb2ludCA8PCAiIGZvdW5kIG5vIHNjcm9s
bGFibGUgbGF5ZXJzOyB1c2luZyByb290IG5vZGUiKTsKKyAgICByZXR1cm4gcm9vdFNjcm9sbGlu
Z05vZGU7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZU1hYzo6bG9ja0xheWVyc0ZvckhpdFRlc3Rp
bmcoKQogewogICAgIG1fbGF5ZXJIaXRUZXN0TXV0ZXgubG9jaygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCmluZGV4IDYwNjFhOTYwMTc2
ZGExZDc0MjllMWYyMjRiZjFhY2RlZDEyYzFkODQuLjFiNWY4OTVhYzQ3Y2I2ODViOGVlMjc1ZGNi
ODBlYTM3MjkwNWM2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2Vi
Q29yZVRlc3RTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNv
cmVUZXN0U3VwcG9ydC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBtb25pdG9yV2hlZWxFdmVu
dHMoV2ViQ29yZTo6RnJhbWUmIGZyYW1lKQogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgcGFnZS0+ZW5zdXJlV2hlZWxFdmVudFRlc3RNb25pdG9yKCk7CisgICAgcGFnZS0+
ZW5zdXJlV2hlZWxFdmVudFRlc3RNb25pdG9yKCkuY2xlYXJBbGxUZXN0RGVmZXJyYWxzKCk7CiB9
CiAKIHZvaWQgc2V0VGVzdENhbGxiYWNrQW5kU3RhcnROb3RpZmljYXRpb25UaW1lcihXZWJDb3Jl
OjpGcmFtZSYgZnJhbWUsIEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBqc0NhbGxi
YWNrRnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDM4NTE5OWNiYTY4
N2U4NmZmOTczMDMzM2UzNTk2NDIyYjkxN2M2ZWQuLjVkODA1OTc3OWRkMTZmOTdlYzJhMmJkNjk2
YWFmNDVhODRiNTEyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC03MDEsNyAr
NzAxLDcgQEAgdm9pZCBXS0J1bmRsZVBhZ2VTdGFydE1vbml0b3JpbmdTY3JvbGxPcGVyYXRpb25z
KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgcGFnZS0+ZW5zdXJlV2hlZWxFdmVudFRlc3RNb25pdG9yKCk7CisgICAgcGFnZS0+
ZW5zdXJlV2hlZWxFdmVudFRlc3RNb25pdG9yKCkuY2xlYXJBbGxUZXN0RGVmZXJyYWxzKCk7CiB9
CiAKIGJvb2wgV0tCdW5kbGVQYWdlUmVnaXN0ZXJTY3JvbGxPcGVyYXRpb25Db21wbGV0aW9uQ2Fs
bGJhY2soV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZVRlc3ROb3RpZmljYXRp
b25DYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY29udGV4dCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1OWVmYjVjNDlmNTQ0
ZTI0ZWQxZmYwZjQzYzEzMGYwODkwMTA1MjZkLi43ZjExYWEwNDc0NDc1NWE3YmU4NGVkMmI0MDUy
ODlhMGE3NDBkNjMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMtMDYgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgSGl0LXRlc3QgQ0FMYXll
cnMgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQgZm9yIGFzeW5jIGZyYW1lL292ZXJmbG93IHNjcm9s
bGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4
NzQwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODAyODgzNj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc29tZSBVSUhlbHBlciBmdW5jdGlv
bnMgZm9yIG1vdXNld2hlZWwgc2Nyb2xsaW5nLCBhbmQgdXNlIHRoZW0gaW4gbmV3IHRlc3RzLgor
ICAgICAgICBGaXggc29tZSBvbGQgbWFsZm9ybWVkIGV4cGVjdGF0aW9ucy4KKworICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDAxLWV4cGVjdGVkLmh0bWw6
IFdhcyBtYWxmb3JtZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5n
LWlmcmFtZS0wMDItZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3Mv
aGl0LXRlc3RpbmctaWZyYW1lLTAwMy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3Qvc2Ny
b2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDA0LWV4cGVjdGVkLmh0bWw6CisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDUtZXhwZWN0ZWQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwNi1l
eHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL21hYy9hYnNvbHV0ZS1pbi1v
dmVyZmxvdy1zY3JvbGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9s
bGluZy9tYWMvYWJzb2x1dGUtaW4tb3ZlcmZsb3ctc2Nyb2xsLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3Qvc2Nyb2xsaW5nL21hYy9hc3luYy1zY3JvbGwtb3ZlcmZsb3ctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvYXN5bmMtc2Nyb2xsLW92ZXJm
bG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL21hYy9tb3ZlLW5vZGUt
aW4tb3ZlcmZsb3ctc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvbWFjL21vdmUtbm9kZS1pbi1vdmVyZmxvdy1zY3JvbGwuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvbWFjL292ZXJsYXBwZWQtb3ZlcmZsb3ctc2Nyb2xsLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbWFjL292ZXJsYXBw
ZWQtb3ZlcmZsb3ctc2Nyb2xsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy91aS1o
ZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuYXN5bmMgbW91c2VXaGVlbFNjcm9s
bEF0KToKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5hc3luYyBhbmltYXRpb25GcmFtZSk6CisK
IDIwMjAtMDMtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgTW92ZSBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMgdG8gU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9o
aXQtdGVzdGluZy1pZnJhbWUtMDAxLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwMS1leHBlY3RlZC5odG1sCmluZGV4IDc0
ZDQyYTkyMTdiOGM5MDVmYTRkMjFlNjViYmM1ODc1OGNjZmJkNWMuLjVmNzljNGZlMzNiOWEyMTJm
NGZlYjMwMTEwMmUzZWYyNzJjYThkMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDAxLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDEtZXhwZWN0
ZWQuaHRtbApAQCAtMSw1ICsxLDUgQEAKIDwhRE9DVFlQRSBodG1sPgotPGh0bWwKKzxodG1sPgog
ICA8aGVhZD4KICAgICA8dGl0bGU+SGl0IHRlc3Rpbmcgb2YgaWZyYW1lPC90aXRsZT4KICAgPC9o
ZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0
aW5nLWlmcmFtZS0wMDItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDAyLWV4cGVjdGVkLmh0bWwKaW5kZXggNzRkNDJhOTIx
N2I4YzkwNWZhNGQyMWU2NWJiYzU4NzU4Y2NmYmQ1Yy4uNWY3OWM0ZmUzM2I5YTIxMmY0ZmViMzAx
MTAyZTNlZjI3MmNhOGQwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDItZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwMi1leHBlY3RlZC5odG1s
CkBAIC0xLDUgKzEsNSBAQAogPCFET0NUWVBFIGh0bWw+Ci08aHRtbAorPGh0bWw+CiAgIDxoZWFk
PgogICAgIDx0aXRsZT5IaXQgdGVzdGluZyBvZiBpZnJhbWU8L3RpdGxlPgogICA8L2hlYWQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZy
YW1lLTAwMy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hp
dC10ZXN0aW5nLWlmcmFtZS0wMDMtZXhwZWN0ZWQuaHRtbAppbmRleCA3NGQ0MmE5MjE3YjhjOTA1
ZmE0ZDIxZTY1YmJjNTg3NThjY2ZiZDVjLi41Zjc5YzRmZTMzYjlhMjEyZjRmZWIzMDExMDJlM2Vm
MjcyY2E4ZDAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0
LXRlc3RpbmctaWZyYW1lLTAwMy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDAzLWV4cGVjdGVkLmh0bWwKQEAgLTEs
NSArMSw1IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxodG1sCis8aHRtbD4KICAgPGhlYWQ+CiAgICAg
PHRpdGxlPkhpdCB0ZXN0aW5nIG9mIGlmcmFtZTwvdGl0bGU+CiAgIDwvaGVhZD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDA0
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3Rp
bmctaWZyYW1lLTAwNC1leHBlY3RlZC5odG1sCmluZGV4IDc0ZDQyYTkyMTdiOGM5MDVmYTRkMjFl
NjViYmM1ODc1OGNjZmJkNWMuLjVmNzljNGZlMzNiOWEyMTJmNGZlYjMwMTEwMmUzZWYyNzJjYThk
MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGlu
Zy1pZnJhbWUtMDA0LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDQtZXhwZWN0ZWQuaHRtbApAQCAtMSw1ICsxLDUg
QEAKIDwhRE9DVFlQRSBodG1sPgotPGh0bWwKKzxodG1sPgogICA8aGVhZD4KICAgICA8dGl0bGU+
SGl0IHRlc3Rpbmcgb2YgaWZyYW1lPC90aXRsZT4KICAgPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDUtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJh
bWUtMDA1LWV4cGVjdGVkLmh0bWwKaW5kZXggNzRkNDJhOTIxN2I4YzkwNWZhNGQyMWU2NWJiYzU4
NzU4Y2NmYmQ1Yy4uNWY3OWM0ZmUzM2I5YTIxMmY0ZmViMzAxMTAyZTNlZjI3MmNhOGQwMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFt
ZS0wMDUtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
aGl0LXRlc3RpbmctaWZyYW1lLTAwNS1leHBlY3RlZC5odG1sCkBAIC0xLDUgKzEsNSBAQAogPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbAorPGh0bWw+CiAgIDxoZWFkPgogICAgIDx0aXRsZT5IaXQgdGVz
dGluZyBvZiBpZnJhbWU8L3RpdGxlPgogICA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwNi1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDYt
ZXhwZWN0ZWQuaHRtbAppbmRleCA3NGQ0MmE5MjE3YjhjOTA1ZmE0ZDIxZTY1YmJjNTg3NThjY2Zi
ZDVjLi41Zjc5YzRmZTMzYjlhMjEyZjRmZWIzMDExMDJlM2VmMjcyY2E4ZDAxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwNi1l
eHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVz
dGluZy1pZnJhbWUtMDA2LWV4cGVjdGVkLmh0bWwKQEAgLTEsNSArMSw1IEBACiA8IURPQ1RZUEUg
aHRtbD4KLTxodG1sCis8aHRtbD4KICAgPGhlYWQ+CiAgICAgPHRpdGxlPkhpdCB0ZXN0aW5nIG9m
IGlmcmFtZTwvdGl0bGU+CiAgIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL21hYy9hYnNvbHV0ZS1pbi1vdmVyZmxvdy1zY3JvbGwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL2Fic29sdXRlLWluLW92ZXJmbG93LXNjcm9s
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdkYTZmMGE0NjE2YWZmNDQ3MzgyOGZjODMzZGI0
NWIxOWQ0YTg3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L21hYy9hYnNvbHV0ZS1pbi1vdmVyZmxvdy1zY3JvbGwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTIgQEAKKworVGVzdCBzY3JvbGwgb3ZlciBjb250ZW50CitQQVNTIG92ZXJmbG93U2Nyb2xsRXZl
bnRDb3VudCA+IDAgaXMgdHJ1ZQorUEFTUyB3aW5kb3dTY3JvbGxFdmVudENvdW50ID09IDAgaXMg
dHJ1ZQorCitUZXN0IHNjcm9sbCBvdmVyIGFic29sdXRlIGVsZW1lbnQKK1BBU1Mgb3ZlcmZsb3dT
Y3JvbGxFdmVudENvdW50ID09IDAgaXMgdHJ1ZQorUEFTUyB3aW5kb3dTY3JvbGxFdmVudENvdW50
ID4gMCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL2Fic29s
dXRlLWluLW92ZXJmbG93LXNjcm9sbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
bWFjL2Fic29sdXRlLWluLW92ZXJmbG93LXNjcm9sbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjYzVhZGZk
ZDQ0OGEyNDU2MzQxMzU4ZDc3YWVhZDBiNzYyOGY3NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvYWJzb2x1dGUtaW4tb3ZlcmZsb3ctc2Nyb2xsLmh0
bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4K
KzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwMHB4OworICAgICAgICB9CisgICAgICAgIC5jb250YWluZXIgeworICAgICAg
ICAgICAgcG9zaXRpb246IGFic29sdXRlOyAvKiBDb250YWluaW5nIGJsb2NrIGZvciB0aGUgaW5u
ZXIgYWJzb2x1dGUgKi8KKyAgICAgICAgICAgIHRvcDogMTBweDsKKyAgICAgICAgICAgIGxlZnQ6
IDEwcHg7CisgICAgICAgIH0KKyAgICAgICAgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIGhlaWdo
dDogMzAwcHg7CisgICAgICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgICAgICBib3JkZXI6
IDIwcHggc29saWQgZ3JheTsKKyAgICAgICAgICAgIHBhZGRpbmc6IDVweDsKKyAgICAgICAgICAg
IG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgICAgICBvcGFjaXR5OiAwLjg7IC8qIEZvcmNlIHN0
YWNraW5nYyBjb250ZXh0ICovCisgICAgICAgIH0KKyAgICAgICAgLmNvbnRlbnQgeworICAgICAg
ICAgICAgd2lkdGg6IDIwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDMwMCU7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIC5hYnNvbHV0ZSB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICAgICAgbGVmdDogNTBweDsK
KyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7Cisg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIHZhciBzY3JvbGxlcjsKKyAgICAgICAgdmFyIG92ZXJmbG93U2Nyb2xs
RXZlbnRDb3VudCA9IDA7CisgICAgICAgIHZhciB3aW5kb3dTY3JvbGxFdmVudENvdW50ID0gMDsK
KworICAgICAgICBhc3luYyBmdW5jdGlvbiByZXNldFNjcm9sbFBvc2l0aW9ucygpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUb3AgPSAwOworICAgICAgICAgICAgc2Nyb2xs
ZXIuc2Nyb2xsVG9wID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gV2FpdCBmb3Ig
c2Nyb2xsIGV2ZW50cyB0byBmaXJlLgorICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYW5pbWF0
aW9uRnJhbWUoKTsKKworICAgICAgICAgICAgb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID0gMDsK
KyAgICAgICAgICAgIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgPSAwOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0U2Nyb2xsT3ZlckNvbnRlbnQoKQorICAg
ICAgICB7CisgICAgICAgICAgICBkZWJ1ZygnJyk7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdCBz
Y3JvbGwgb3ZlciBjb250ZW50Jyk7CisgICAgICAgICAgICBhd2FpdCByZXNldFNjcm9sbFBvc2l0
aW9ucygpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIubW91c2VXaGVlbFNjcm9sbEF0KDUw
LCA1MCk7CisKKyAgICAgICAgICAgIHNob3VsZEJlKCdvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQg
PiAwJywgJ3RydWUnKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCd3aW5kb3dTY3JvbGxFdmVudENv
dW50ID09IDAnLCAndHJ1ZScpOworICAgICAgICB9CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24g
dGVzdFNjcm9sbE92ZXJBYnNvbHV0ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlYnVnKCcn
KTsKKyAgICAgICAgICAgIGRlYnVnKCdUZXN0IHNjcm9sbCBvdmVyIGFic29sdXRlIGVsZW1lbnQn
KTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0U2Nyb2xsUG9zaXRpb25zKCk7CisgICAgICAgICAg
ICBhd2FpdCBVSUhlbHBlci5tb3VzZVdoZWVsU2Nyb2xsQXQoMTAwLCAxNTApOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBzaG91bGRCZSgnb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID09IDAn
LCAndHJ1ZScpOworICAgICAgICAgICAgc2hvdWxkQmUoJ3dpbmRvd1Njcm9sbEV2ZW50Q291bnQg
PiAwJywgJ3RydWUnKTsKKyAgICAgICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNjcm9s
bFRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBhd2FpdCB0ZXN0U2Nyb2xsT3ZlckNvbnRl
bnQoKTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RTY3JvbGxPdmVyQWJzb2x1dGUoKTsKKworICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgICAgIHNjcm9sbGVyID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignLnNjcm9sbGVyJyk7CisgICAgICAgICAgICBzY3JvbGxlci5h
ZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgKytvdmVy
Zmxvd1Njcm9sbEV2ZW50Q291bnQ7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CisgICAgICAgICAg
ICAgICAgKyt3aW5kb3dTY3JvbGxFdmVudENvdW50OworICAgICAgICAgICAgfSwgZmFsc2UpOwor
CisgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOworICAgICAgICB9LCBmYWxz
ZSk7CisKKyAgICAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50
Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSI+CisgICAgICAgICAgICAg
ICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvbWFjL2FzeW5jLXNjcm9sbC1vdmVyZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvYXN5bmMtc2Nyb2xsLW92ZXJmbG93LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ODQ0NmUyNDFlNjgwMmEzYjc4ZjkyYjBlZjFmODM3OTQ2MmY3ZTJjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL2FzeW5jLXNj
cm9sbC1vdmVyZmxvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitUZXN0IHNjcm9s
bCBvdmVyIGNvbnRlbnQKK1BBU1Mgb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID4gMCBpcyB0cnVl
CitQQVNTIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgPT0gMCBpcyB0cnVlCisKK1Rlc3Qgc2Nyb2xs
IG92ZXIgYm9yZGVyCitQQVNTIG92ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA9PSAwIGlzIHRydWUK
K1BBU1Mgd2luZG93U2Nyb2xsRXZlbnRDb3VudCA+IDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9hc3luYy1zY3JvbGwtb3ZlcmZsb3cuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9hc3luYy1zY3JvbGwtb3ZlcmZsb3cuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NDE3NGExOTEyZTg1NGUyOGZlZTNiZWFiODI2NjQ3YzFmOWU5ZWU4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL2FzeW5jLXNjcm9sbC1v
dmVyZmxvdy5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAg
ICAgICAgICAgIGhlaWdodDogMTAwMHB4OworICAgICAgICB9CisgICAgICAgIC5zY3JvbGxlciB7
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6IDEwcHg7
CisgICAgICAgICAgICBsZWZ0OiAxMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAg
ICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMjBweCBzb2xpZCBn
cmF5OworICAgICAgICAgICAgcGFkZGluZzogNXB4OworICAgICAgICAgICAgb3ZlcmZsb3c6IHNj
cm9sbDsKKyAgICAgICAgfQorICAgICAgICAuY29udGVudCB7CisgICAgICAgICAgICB3aWR0aDog
MjAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMzAwJTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICAgICAgdmFyIHNjcm9sbGVyOworICAgICAgICB2YXIgb3ZlcmZs
b3dTY3JvbGxFdmVudENvdW50ID0gMDsKKyAgICAgICAgdmFyIHdpbmRvd1Njcm9sbEV2ZW50Q291
bnQgPSAwOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJlc2V0U2Nyb2xsUG9zaXRpb25zKCkK
KyAgICAgICAgeworICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvcCA9IDA7CisgICAgICAgICAg
ICBzY3JvbGxlci5zY3JvbGxUb3AgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBX
YWl0IGZvciBzY3JvbGwgZXZlbnRzIHRvIGZpcmUuCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBl
ci5hbmltYXRpb25GcmFtZSgpOworCisgICAgICAgICAgICBvdmVyZmxvd1Njcm9sbEV2ZW50Q291
bnQgPSAwOworICAgICAgICAgICAgd2luZG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RTY3JvbGxPdmVyQ29udGVu
dCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlYnVnKCcnKTsKKyAgICAgICAgICAgIGRlYnVn
KCdUZXN0IHNjcm9sbCBvdmVyIGNvbnRlbnQnKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0U2Ny
b2xsUG9zaXRpb25zKCk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3VzZVdoZWVsU2Ny
b2xsQXQoMTAwLCAxMDApOworCisgICAgICAgICAgICBzaG91bGRCZSgnb3ZlcmZsb3dTY3JvbGxF
dmVudENvdW50ID4gMCcsICd0cnVlJyk7CisgICAgICAgICAgICBzaG91bGRCZSgnd2luZG93U2Ny
b2xsRXZlbnRDb3VudCA9PSAwJywgJ3RydWUnKTsKKyAgICAgICAgfQorCisgICAgICAgIGFzeW5j
IGZ1bmN0aW9uIHRlc3RTY3JvbGxPdmVyQm9yZGVyKCkKKyAgICAgICAgeworICAgICAgICAgICAg
ZGVidWcoJycpOworICAgICAgICAgICAgZGVidWcoJ1Rlc3Qgc2Nyb2xsIG92ZXIgYm9yZGVyJyk7
CisgICAgICAgICAgICBhd2FpdCByZXNldFNjcm9sbFBvc2l0aW9ucygpOworICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIubW91c2VXaGVlbFNjcm9sbEF0KDE1LCAxNSk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIHNob3VsZEJlKCdvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQgPT0gMCcsICd0
cnVlJyk7CisgICAgICAgICAgICBzaG91bGRCZSgnd2luZG93U2Nyb2xsRXZlbnRDb3VudCA+IDAn
LCAndHJ1ZScpOworICAgICAgICB9CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gc2Nyb2xsVGVz
dCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RTY3JvbGxPdmVyQ29udGVudCgp
OworICAgICAgICAgICAgYXdhaXQgdGVzdFNjcm9sbE92ZXJCb3JkZXIoKTsKKworICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgICAgIHNjcm9sbGVyID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignLnNjcm9sbGVyJyk7CisgICAgICAgICAgICBzY3JvbGxlci5hZGRFdmVu
dExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgKytvdmVyZmxvd1Nj
cm9sbEV2ZW50Q291bnQ7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAg
Kyt3aW5kb3dTY3JvbGxFdmVudENvdW50OworICAgICAgICAgICAgfSwgZmFsc2UpOworCisgICAg
ICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOworICAgICAgICB9LCBmYWxzZSk7CisK
KyAgICAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9ImNvbnRlbnQiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Im92ZXJs
YXBwZXIiPjwvZGl2PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9tb3ZlLW5vZGUtaW4tb3ZlcmZsb3ctc2Nyb2xsLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9tb3ZlLW5vZGUtaW4t
b3ZlcmZsb3ctc2Nyb2xsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YmVmNWEwNTY5ZDIwNTVh
M2ZkYmJmZmIyOTZiZjgxYWIwZDMxMzc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbWFjL21vdmUtbm9kZS1pbi1vdmVyZmxvdy1zY3JvbGwtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKKworVGVzdCBzY3JvbGwgb3ZlciBjb250ZW50CitQQVNTIG92
ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA+IDAgaXMgdHJ1ZQorUEFTUyB3aW5kb3dTY3JvbGxFdmVu
dENvdW50ID09IDAgaXMgdHJ1ZQorCitUZXN0IHNjcm9sbCBvdmVyIHRyYW5zZm9ybWVkIGVsZW1l
bnQKK1BBU1Mgb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID4gMCBpcyB0cnVlCitQQVNTIHdpbmRv
d1Njcm9sbEV2ZW50Q291bnQgPT0gMCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvbWFjL21vdmUtbm9kZS1pbi1vdmVyZmxvdy1zY3JvbGwuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9tb3ZlLW5vZGUtaW4tb3ZlcmZsb3ctc2Nyb2xsLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjM0OGI2MjMzODdhNzljMmRkM2Y2N2U2Nzk2NTRhZGU4Y2UwYmEwOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9tb3ZlLW5vZGUt
aW4tb3ZlcmZsb3ctc2Nyb2xsLmh0bWwKQEAgLTAsMCArMSwxMDggQEAKKzwhRE9DVFlQRSBodG1s
PiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxp
bmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAg
ICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDogMTAwMHB4OworICAgICAgICB9CisgICAgICAg
IC8qIG5vbi1zdGFja2luZyBjb250ZXh0IHNjcm9sbGVyICovCisgICAgICAgIC5zY3JvbGxlciB7
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6IDEwcHg7
CisgICAgICAgICAgICBsZWZ0OiAxMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAg
ICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMjBweCBzb2xpZCBn
cmF5OworICAgICAgICAgICAgcGFkZGluZzogNXB4OworICAgICAgICAgICAgb3ZlcmZsb3c6IHNj
cm9sbDsKKyAgICAgICAgfQorICAgICAgICAuY29udGVudCB7CisgICAgICAgICAgICB3aWR0aDog
MjAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMzAwJTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgLyogU3RhY2tpbmcgY29udGV4dCBpcyB0aGUgcm9vdCAqLworICAgICAgICAudHJhbnNm
b3JtZWQgeworICAgICAgICAgICAgbWFyZ2luOiA1MHB4OworICAgICAgICAgICAgaGVpZ2h0OiAy
MDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGdyYXk7CisgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMXB4KTsKKyAg
ICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZh
ciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICB2YXIgc2Nyb2xsZXI7CisgICAgICAg
IHZhciBvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQgPSAwOworICAgICAgICB2YXIgd2luZG93U2Ny
b2xsRXZlbnRDb3VudCA9IDA7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcmVzZXRTY3JvbGxQ
b3NpdGlvbnMoKQorICAgICAgICB7CisgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG9wID0gMDsK
KyAgICAgICAgICAgIHNjcm9sbGVyLnNjcm9sbFRvcCA9IDA7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIC8vIFdhaXQgZm9yIHNjcm9sbCBldmVudHMgdG8gZmlyZS4KKyAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLmFuaW1hdGlvbkZyYW1lKCk7CisKKyAgICAgICAgICAgIG92ZXJmbG93U2Ny
b2xsRXZlbnRDb3VudCA9IDA7CisgICAgICAgICAgICB3aW5kb3dTY3JvbGxFdmVudENvdW50ID0g
MDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9s
bE92ZXJDb250ZW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgZGVidWcoJycpOworICAgICAg
ICAgICAgZGVidWcoJ1Rlc3Qgc2Nyb2xsIG92ZXIgY29udGVudCcpOworICAgICAgICAgICAgYXdh
aXQgcmVzZXRTY3JvbGxQb3NpdGlvbnMoKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1v
dXNlV2hlZWxTY3JvbGxBdCg1MCwgNTApOworCisgICAgICAgICAgICBzaG91bGRCZSgnb3ZlcmZs
b3dTY3JvbGxFdmVudENvdW50ID4gMCcsICd0cnVlJyk7CisgICAgICAgICAgICBzaG91bGRCZSgn
d2luZG93U2Nyb2xsRXZlbnRDb3VudCA9PSAwJywgJ3RydWUnKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RTY3JvbGxPdmVyVHJhbnNmb3JtZWQoKQorICAgICAgICB7
CisgICAgICAgICAgICBkZWJ1ZygnJyk7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdCBzY3JvbGwg
b3ZlciB0cmFuc2Zvcm1lZCBlbGVtZW50Jyk7CisgICAgICAgICAgICBhd2FpdCByZXNldFNjcm9s
bFBvc2l0aW9ucygpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIubW91c2VXaGVlbFNjcm9s
bEF0KDE1MCwgMTUwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2hvdWxkQmUoJ292ZXJm
bG93U2Nyb2xsRXZlbnRDb3VudCA+IDAnLCAndHJ1ZScpOworICAgICAgICAgICAgc2hvdWxkQmUo
J3dpbmRvd1Njcm9sbEV2ZW50Q291bnQgPT0gMCcsICd0cnVlJyk7CisgICAgICAgIH0KKworICAg
ICAgICBhc3luYyBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAg
YXdhaXQgdGVzdFNjcm9sbE92ZXJDb250ZW50KCk7CisgICAgICAgICAgICBhd2FpdCB0ZXN0U2Ny
b2xsT3ZlclRyYW5zZm9ybWVkKCk7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7
CisgICAgICAgICAgICBzY3JvbGxlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zY3JvbGxl
cicpOworICAgICAgICAgICAgc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkg
PT4geworICAgICAgICAgICAgICAgICsrb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50OworICAgICAg
ICAgICAgfSwgZmFsc2UpOworCisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
c2Nyb2xsJywgKCkgPT4geworICAgICAgICAgICAgICAgICsrd2luZG93U2Nyb2xsRXZlbnRDb3Vu
dDsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICAgICAgc2V0VGltZW91dChzY3Jv
bGxUZXN0LCAwKTsKKyAgICAgICAgfSwgZmFsc2UpOworCisgICAgICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRp
diBjbGFzcz0ic2Nyb2xsZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KKyAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgPC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbWFjL292ZXJsYXBwZWQtb3ZlcmZsb3ctc2Nyb2xsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9vdmVybGFwcGVkLW92ZXJmbG93
LXNjcm9sbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU5OTMwNDc2ZmEzYjMxYTE1OTQ5NTA4
NjgzYmFhYTRhMTZmMWZmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL21hYy9vdmVybGFwcGVkLW92ZXJmbG93LXNjcm9sbC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNiBAQAorCitUZXN0IHNjcm9sbCBvdmVyIGNvbnRlbnQKK1BBU1Mgb3ZlcmZsb3dTY3Jv
bGxFdmVudENvdW50ID4gMCBpcyB0cnVlCitQQVNTIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgPT0g
MCBpcyB0cnVlCisKK1Rlc3Qgc2Nyb2xsIG92ZXIgb3ZlcmxhcHBpbmcgZWxlbWVudAorUEFTUyBv
dmVyZmxvd1Njcm9sbEV2ZW50Q291bnQgPT0gMCBpcyB0cnVlCitQQVNTIHdpbmRvd1Njcm9sbEV2
ZW50Q291bnQgPiAwIGlzIHRydWUKKworVGVzdCBzY3JvbGwgb3ZlciBvdmVybGFwcGluZyBlbGVt
ZW50IG91dHNpZGUgYm9yZGVyCitQQVNTIG92ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA+IDAgaXMg
dHJ1ZQorUEFTUyB3aW5kb3dTY3JvbGxFdmVudENvdW50ID09IDAgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9vdmVybGFwcGVkLW92ZXJmbG93LXNjcm9sbC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL292ZXJsYXBwZWQtb3ZlcmZsb3ct
c2Nyb2xsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ5M2ZjNTY5NDcwNDExNGQ2YTE5NGM3Yzc4NzBkNzQ3
MGY2YzRmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21h
Yy9vdmVybGFwcGVkLW92ZXJmbG93LXNjcm9sbC5odG1sCkBAIC0wLDAgKzEsMTIxIEBACis8IURP
Q1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092ZXJm
bG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHls
ZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMDBweDsKKyAgICAgICAg
fQorICAgICAgICAuc2Nyb2xsZXIgeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICAgICAgdG9wOiAxMHB4OworICAgICAgICAgICAgbGVmdDogMTBweDsKKyAgICAgICAg
ICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgICAg
ICBib3JkZXI6IDIwcHggc29saWQgZ3JheTsKKyAgICAgICAgICAgIHBhZGRpbmc6IDVweDsKKyAg
ICAgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgIH0KKyAgICAgICAgLmNvbnRlbnQg
eworICAgICAgICAgICAgd2lkdGg6IDIwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDMwMCU7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5vdmVybGFwcGVyIHsKKyAgICAgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMzAwcHg7CisgICAgICAgICAgICB0b3A6IDIwMHB4OworICAgICAgICAgICAgbGVm
dDogMjAwcHg7CisgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CisgICAgICAgICAgICBi
b3gtc2hhZG93OiAwIDAgMjBweCBibGFjazsgLyogSW5mbGF0ZSBsYXllciBzaXplIGZvciB0ZXN0
aW5nICovCisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDEyOCwgMC41
KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICB2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgdmFyIHNj
cm9sbGVyOworICAgICAgICB2YXIgb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID0gMDsKKyAgICAg
ICAgdmFyIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgPSAwOworCisgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIHJlc2V0U2Nyb2xsUG9zaXRpb25zKCkKKyAgICAgICAgeworICAgICAgICAgICAgd2luZG93
LnNjcm9sbFRvcCA9IDA7CisgICAgICAgICAgICBzY3JvbGxlci5zY3JvbGxUb3AgPSAwOworICAg
ICAgICAgICAgCisgICAgICAgICAgICAvLyBXYWl0IGZvciBzY3JvbGwgZXZlbnRzIHRvIGZpcmUu
CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5hbmltYXRpb25GcmFtZSgpOworCisgICAgICAg
ICAgICBvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQgPSAwOworICAgICAgICAgICAgd2luZG93U2Ny
b2xsRXZlbnRDb3VudCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGFzeW5jIGZ1
bmN0aW9uIHRlc3RTY3JvbGxPdmVyQ29udGVudCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRl
YnVnKCcnKTsKKyAgICAgICAgICAgIGRlYnVnKCdUZXN0IHNjcm9sbCBvdmVyIGNvbnRlbnQnKTsK
KyAgICAgICAgICAgIGF3YWl0IHJlc2V0U2Nyb2xsUG9zaXRpb25zKCk7CisgICAgICAgICAgICBh
d2FpdCBVSUhlbHBlci5tb3VzZVdoZWVsU2Nyb2xsQXQoNTAsIDUwKTsKKworICAgICAgICAgICAg
c2hvdWxkQmUoJ292ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA+IDAnLCAndHJ1ZScpOworICAgICAg
ICAgICAgc2hvdWxkQmUoJ3dpbmRvd1Njcm9sbEV2ZW50Q291bnQgPT0gMCcsICd0cnVlJyk7Cisg
ICAgICAgIH0KKworICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0U2Nyb2xsT3Zlck92ZXJsYXBw
ZXIoKQorICAgICAgICB7CisgICAgICAgICAgICBkZWJ1ZygnJyk7CisgICAgICAgICAgICBkZWJ1
ZygnVGVzdCBzY3JvbGwgb3ZlciBvdmVybGFwcGluZyBlbGVtZW50Jyk7CisgICAgICAgICAgICBh
d2FpdCByZXNldFNjcm9sbFBvc2l0aW9ucygpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIu
bW91c2VXaGVlbFNjcm9sbEF0KDMwMCwgMzAwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
c2hvdWxkQmUoJ292ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA9PSAwJywgJ3RydWUnKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCd3aW5kb3dTY3JvbGxFdmVudENvdW50ID4gMCcsICd0cnVlJyk7Cisg
ICAgICAgIH0KKworICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0U2Nyb2xsT3Zlck92ZXJsYXBw
ZXJPdXRzaWRlUmFkaXVzKCkKKyAgICAgICAgeworICAgICAgICAgICAgZGVidWcoJycpOworICAg
ICAgICAgICAgZGVidWcoJ1Rlc3Qgc2Nyb2xsIG92ZXIgb3ZlcmxhcHBpbmcgZWxlbWVudCBvdXRz
aWRlIGJvcmRlcicpOworICAgICAgICAgICAgYXdhaXQgcmVzZXRTY3JvbGxQb3NpdGlvbnMoKTsK
KyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCgyMzAsIDIzMCk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNob3VsZEJlKCdvdmVyZmxvd1Njcm9sbEV2ZW50
Q291bnQgPiAwJywgJ3RydWUnKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCd3aW5kb3dTY3JvbGxF
dmVudENvdW50ID09IDAnLCAndHJ1ZScpOworICAgICAgICB9CisKKyAgICAgICAgYXN5bmMgZnVu
Y3Rpb24gc2Nyb2xsVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RTY3Jv
bGxPdmVyQ29udGVudCgpOworICAgICAgICAgICAgYXdhaXQgdGVzdFNjcm9sbE92ZXJPdmVybGFw
cGVyKCk7CisgICAgICAgICAgICBhd2FpdCB0ZXN0U2Nyb2xsT3Zlck92ZXJsYXBwZXJPdXRzaWRl
UmFkaXVzKCk7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAg
ICBzY3JvbGxlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zY3JvbGxlcicpOworICAgICAg
ICAgICAgc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4geworICAgICAg
ICAgICAgICAgICsrb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50OworICAgICAgICAgICAgfSwgZmFs
c2UpOworCisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkg
PT4geworICAgICAgICAgICAgICAgICsrd2luZG93U2Nyb2xsRXZlbnRDb3VudDsKKyAgICAgICAg
ICAgIH0sIGZhbHNlKTsKKworICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsK
KyAgICAgICAgfSwgZmFsc2UpOworCisgICAgICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0ic2Ny
b2xsZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij48L2Rpdj4KKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJvdmVybGFwcGVyIj48L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5
b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCA3Y2NhMGQzYmE2MDk5YTRmOWNj
NmU0NTI2OWIxOTE5Y2U0MmI0OWE2Li5kMTEyNGZmODU0MjczNjU2YTY1OWY5OTA4MmIzZWMyN2Q2
OGNiOTA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisr
KyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTI4LDYgKzI4LDI1IEBA
IHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oeDIsIHkyKTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAg
IH0KKyAgICAKKyAgICBzdGF0aWMgYXN5bmMgbW91c2VXaGVlbFNjcm9sbEF0KHgsIHkpCisgICAg
eworICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImJlZ2FuIiwgIm5vbmUiKTsK
KyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xMCwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgImVuZGVkIiwgIm5vbmUi
KTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKCgpID0+IHsKKyAgICAgICAg
ICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIGFzeW5jIGFuaW1hdGlvbkZyYW1lKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUp
OworICAgIH0KIAogICAgIHN0YXRpYyBzZW5kRXZlbnRTdHJlYW0oZXZlbnRTdHJlYW0pCiAgICAg
ewo=
</data>
<flag name="review"
          id="408186"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392799</attachid>
            <date>2020-03-06 16:26:36 -0800</date>
            <delta_ts>2020-03-06 16:26:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208740-20200306162635.patch</filename>
            <type>text/plain</type>
            <size>36844</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODk0MWVkZDU5ZjMzZTg2
Nzg3OTg2MDc0NjhmMGM1MDRhZjYxZDM0OC4uMjkwNWQyYTQzZGQ4ZWFlYmFlNmZlOWZmMGQ3Nzgx
MjkyOTZmNzI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTAzLTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEhpdC10ZXN0IENB
TGF5ZXJzIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkIGZvciBhc3luYyBmcmFtZS9vdmVyZmxvdyBz
Y3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODc0MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwMjg4MzY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGhpdC10ZXN0aW5n
IGluIHRoZSBzY3JvbGxpbmcgdGhyZWFkIHNvIHdlIGNhbiBkZXRlcm1pbmUgd2hpY2ggb3ZlcmZs
b3cvc3ViZnJhbWUKKyAgICAgICAgdG8gc2Nyb2xsIHdpdGhvdXQgaGl0dGluZyB0aGUgbWFpbiB0
aHJlYWQuCisKKyAgICAgICAgU2Nyb2xsaW5nVHJlZU1hYyBvdmVycmlkZXMgc2Nyb2xsaW5nTm9k
ZUZvclBvaW50KCkgYW5kIGhpdC10ZXN0cyB0aHJvdWdoIENBTGF5ZXJzLCBzdGFydGluZyBhdCB0
aGUKKyAgICAgICAgcm9vdCBjb250ZW50IGxheWVyLiBMb2NraW5nIGVuc3VyZXMgdGhhdCB0aGUg
Q0FMYXllciB0cmVlIGRvZXNuJ3QgY2hhbmdlIHdoaWxlIHdlJ3JlIGhpdC10ZXN0aW5nIGl0Lgor
ICAgICAgICBXZSBjb2xsZWN0IGxheWVycyBmb3IgdGhlIGdpdmVuIHBvaW50IGluIGJhY2stdG8t
ZnJvbnQgb3JkZXIgbXVjaCBsaWtlIHRoZSBpT1MgY29kZSBfd2ViX2ZpbmREZXNjZW5kYW50Vmll
d0F0UG9pbnQKKyAgICAgICAgKHRvbyBkaWZmZXJlbnQgdG8gc2hhcmUgdGhvdWdoKSwgYW5kIGNv
bnN1bHQgZXZlbnQgcmVnaW9ucyBvbiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYSdzIHRvIGRldGVybWlu
ZSBpZiB0aGUKKyAgICAgICAgcG9pbnQgaXMgaW5zaWRlIHRoZSBwYXJ0IG9mIHRoZSBsYXllciB0
aGF0IHNob3VsZCByZWNlaXZlIGV2ZW50cy4KKworICAgICAgICBUbyBoYW5kbGUgdGhlIGNvbXBs
ZXggc3RhY2tpbmcvY29udGFpbmluZyBibG9jayBjYXNlcywgaXNTY3JvbGxlZEJ5KCkgY29uc3Vs
dHMgdGhlIHNjcm9sbGluZyB0cmVlLgorCisgICAgICAgIEZvciB0ZXN0aW5nLCBmaXggaXQgc28g
dGhhdCBtdWx0aXBsZSBjYWxscyB0byBtb25pdG9yV2hlZWxFdmVudHMoKSBpbiBhIHNpbmdsZSB0
ZXN0IGVhY2ggc3RhcnQKKyAgICAgICAgd2l0aCBjbGVhbiBzdGF0ZS4KKworICAgICAgICBUZXN0
czogZmFzdC9zY3JvbGxpbmcvbWFjL2Fic29sdXRlLWluLW92ZXJmbG93LXNjcm9sbC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9tYWMvYXN5bmMtc2Nyb2xsLW92ZXJmbG93Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL21hYy9tb3ZlLW5vZGUtaW4tb3ZlcmZs
b3ctc2Nyb2xsLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL21hYy9vdmVybGFw
cGVkLW92ZXJmbG93LXNjcm9sbC5odG1sCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmhhbmRsZVdo
ZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nTm9k
ZUZvclBvaW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5o
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLm1tOgorICAg
ICAgICAoY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBvaW50KToKKyAgICAgICAgKHNjcm9sbGlu
Z05vZGVJREZvckxheWVyKToKKyAgICAgICAgKGlzU2Nyb2xsZWRCeSk6CisgICAgICAgIChTY3Jv
bGxpbmdUcmVlTWFjOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQpOgorICAgICAgICAqIHRlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmVUZXN0U3VwcG9ydDo6
bW9uaXRvcldoZWVsRXZlbnRzKTogTWFrZSBzdXJlIHRoYXQgZWFjaCBjYWxsIHRvIGV2ZW50U2Vu
ZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpIGNsZWFycyBwcmV2aW91cyBzdGF0ZS4KKwogMjAyMC0w
My0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBN
b3ZlIHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyB0byBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBiYWFjYmM5NWQxZGQyYjMxNDAyYjRlNDVlYmZkODY4MzNhOTI3YWQ1
Li5hMjFjOTljODMxNTcyYmJjOWRkYWI0MDY3ZWM0MzdlZTc5YjU1OGNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIwLTAzLTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgorCisgICAgICAgIEhpdC10ZXN0IENBTGF5ZXJzIG9uIHRoZSBzY3JvbGxpbmcgdGhy
ZWFkIGZvciBhc3luYyBmcmFtZS9vdmVyZmxvdyBzY3JvbGxpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc0MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDgwMjg4MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTWFrZSBzdXJlIHRoYXQgZWFjaCBjYWxsIHRvIGV2ZW50U2VuZGVyLm1vbml0b3JX
aGVlbEV2ZW50cygpIGNsZWFycyBwcmV2aW91cyBzdGF0ZS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdLQnVu
ZGxlUGFnZVN0YXJ0TW9uaXRvcmluZ1Njcm9sbE9wZXJhdGlvbnMpOgorCiAyMDIwLTAzLTA2ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgc3lu
Y2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIHRvIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4
IDE1YTQwMmZhMTk4NjYxOTg0ZTBmYzExNzg1YTI4NGViY2I0YzQxNjAuLjU3NTY1NTQxMWRjOWRi
ZWUxYTk2YmMyNDczMTMwYTFmOTVmNDYzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgU2Nyb2xsaW5n
RXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHcKIAogICAgIGlmIChtX3Jvb3ROb2RlKSB7CiAgICAgICAgIEZsb2F0UG9p
bnQgcG9zaXRpb24gPSB3aGVlbEV2ZW50LnBvc2l0aW9uKCk7Ci0gICAgICAgIFNjcm9sbGluZ1Ry
ZWVOb2RlKiBub2RlID0gc2Nyb2xsaW5nTm9kZUZvclBvaW50KHBvc2l0aW9uKTsKKyAgICAgICAg
YXV0byBub2RlID0gc2Nyb2xsaW5nTm9kZUZvclBvaW50KHBvc2l0aW9uKTsKIAogICAgICAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmhhbmRs
ZVdoZWVsRXZlbnQgZm91bmQgbm9kZSAiIDw8IChub2RlID8gbm9kZS0+c2Nyb2xsaW5nTm9kZUlE
KCkgOiAwKSA8PCAiIGZvciBwb2ludCAiIDw8IHBvc2l0aW9uIDw8ICJcbiIpOwogCkBAIC0xMjgs
MTAgKzEyOCwxMCBAQCBTY3JvbGxpbmdFdmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgdwogICAgIHJldHVybiBTY3JvbGxp
bmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CiB9CiAKLVNjcm9sbGluZ1RyZWVOb2Rl
KiBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdOb2RlRm9yUG9pbnQoRmxvYXRQb2ludCkKK1JlZlB0
cjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nTm9kZUZvclBvaW50
KEZsb2F0UG9pbnQpCiB7CiAgICAgQVNTRVJUKGFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZCgpKTsKLSAgICByZXR1cm4gbV9yb290Tm9kZS5nZXQoKTsKKyAgICByZXR1cm4gbV9y
b290Tm9kZTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVWaWV3cG9ydENoYW5n
ZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IEZsb2F0UmVjdCYgbGF5b3V0Vmlld3BvcnQsIGRvdWJsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCAxMjhmMjBjMGExNTAxMjdj
Y2I1OGI3ZWRjZDUxZWI3ZDMxMTM0ZWFjLi43MTkxYTM3NjIzYjllMzcyMDBiNDY5MzNjYjAyNjM2
YTZhYWY3ZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5oCkBAIC0xNzcsNyArMTc3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbm90aWZ5UmVs
YXRlZE5vZGVzUmVjdXJzaXZlKFNjcm9sbGluZ1RyZWVOb2RlJik7CiAKLSAgICBTY3JvbGxpbmdU
cmVlTm9kZSogc2Nyb2xsaW5nTm9kZUZvclBvaW50KEZsb2F0UG9pbnQpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBzY3JvbGxpbmdOb2RlRm9y
UG9pbnQoRmxvYXRQb2ludCk7CiAKICAgICBMb2NrIG1fdHJlZU11dGV4OyAvLyBQcm90ZWN0cyB0
aGUgc2Nyb2xsaW5nIHRyZWUuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU1hYy5oCmluZGV4IDBiZDA0ZmMyMGZiNThiMjJmMjgzZjIwYjFmMDFjNDgxZjhkYjYyMmYuLjgz
YWI2ZTQxOTk0OGZiMTgzMmUyYjc4YzJiMDhkZGY3ODI4MDE3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPiBjcmVhdGUoU2Ny
b2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIHZp
cnR1YWwgflNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMoKTsKIAorICAgIFJldGFp
blB0cjxDQUxheWVyPiByb290Q29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdENv
bnRlbnRzTGF5ZXI7IH0KKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdO
b2RlSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVNYWMuaAppbmRleCBhZGU0YTdjNGRkMWI1ODE0YjdlMWY0ZmZhNzdmMzkyMWE4
NmE4ZWFlLi44MDE0ZDlhNjJkZDZkOWJkZTIxOGYzMjJkMWZkYmU1MTJhNzllZWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFj
LmgKQEAgLTQwLDYgKzQwLDggQEAgcHJpdmF0ZToKIAogICAgIFJlZjxTY3JvbGxpbmdUcmVlTm9k
ZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCkgZmluYWw7CiAKKyAgICBSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IHNjcm9sbGluZ05v
ZGVGb3JQb2ludChGbG9hdFBvaW50KSBmaW5hbDsKKwogICAgIHZvaWQgbG9ja0xheWVyc0Zvckhp
dFRlc3RpbmcoKSBmaW5hbDsKICAgICB2b2lkIHVubG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSBm
aW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU1hYy5tbQppbmRleCBkNDNiODkxODM2ZmRiMDAwYzJmODIzMTRiZjE3YTBhMDhm
YzhlYjFjLi4yYjhlMzVmOTgwZWZjNGIwMDgzY2IyMjFjYTk4ZWU3ZWU1ZTcxNzgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1h
Yy5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNj
cm9sbGluZ1RyZWVNYWMuaCIKIAorI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogI2luY2x1
ZGUgIlNjcm9sbGluZ1RyZWVGaXhlZE5vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJh
bWVIb3N0aW5nTm9kZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVNYWMuaCIKQEAgLTMzLDYgKzM0LDcgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlTWFjLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWRO
b2RlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaCIKKyNpbmNsdWRlICJX
ZWJMYXllci5oIgogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgRU5BQkxFKFNDUk9M
TElOR19USFJFQUQpCiAKQEAgLTcxLDYgKzczLDExMSBAQCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+
IFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVU
eQogICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJ
RCk7CiB9CiAKKworc3RhdGljIHZvaWQgY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBvaW50KFZl
Y3RvcjxDQUxheWVyICosIDE2PiYgbGF5ZXJzQXRQb2ludCwgQ0FMYXllciAqcGFyZW50LCBDR1Bv
aW50IHBvaW50KQoreworICAgIGlmIChwYXJlbnQubWFza3NUb0JvdW5kcyAmJiAhW3BhcmVudCBj
b250YWluc1BvaW50OnBvaW50XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChDQUxheWVy
ICpsYXllciBpbiBbcGFyZW50IHN1YmxheWVyc10pIHsKKyAgICAgICAgQ0FMYXllciAqbGF5ZXJX
aXRoUmVzb2x2ZWRBbmltYXRpb25zID0gbGF5ZXI7CisKKyAgICAgICAgaWYgKFtbbGF5ZXIgYW5p
bWF0aW9uS2V5c10gY291bnRdKQorICAgICAgICAgICAgbGF5ZXJXaXRoUmVzb2x2ZWRBbmltYXRp
b25zID0gW2xheWVyIHByZXNlbnRhdGlvbkxheWVyXTsKKworICAgICAgICBDR1BvaW50IHN1YnZp
ZXdQb2ludCA9IFtsYXllcldpdGhSZXNvbHZlZEFuaW1hdGlvbnMgY29udmVydFBvaW50OnBvaW50
IGZyb21MYXllcjpwYXJlbnRdOworCisgICAgICAgIGF1dG8gaGFuZGxlc0V2ZW50ID0gWyZdIHsK
KyAgICAgICAgICAgIGlmIChDR1JlY3RJc0VtcHR5KFtsYXllcldpdGhSZXNvbHZlZEFuaW1hdGlv
bnMgZnJhbWVdKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAg
IGlmICghW2xheWVyV2l0aFJlc29sdmVkQW5pbWF0aW9ucyBjb250YWluc1BvaW50OnN1YnZpZXdQ
b2ludF0pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBhdXRv
IHBsYXRmb3JtQ0FMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyRm9yTGF5
ZXIoKF9fYnJpZGdlIHZvaWQqKWxheWVyKTsKKyAgICAgICAgICAgIGlmIChwbGF0Zm9ybUNBTGF5
ZXIpIHsKKyAgICAgICAgICAgICAgICAvLyBTY3JvbGxpbmcgY2hhbmdlcyBib3VuZHNPcmlnaW4g
b24gdGhlIHNjcm9sbCBjb250YWluZXIgbGF5ZXIsIGJ1dCB3ZSBjb21wdXRlZCBpdHMgZXZlbnQg
cmVnaW9uIGlnbm9yaW5nIHNjcm9sbCBwb3NpdGlvbiwgc28gZmFjdG9yIG91dCBib3VuZHMgb3Jp
Z2luLgorICAgICAgICAgICAgICAgIEZsb2F0UG9pbnQgYm91bmRzT3JpZ2luID0gbGF5ZXIuYm91
bmRzLm9yaWdpbjsKKyAgICAgICAgICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSBzdWJ2
aWV3UG9pbnQgLSB0b0Zsb2F0U2l6ZShib3VuZHNPcmlnaW4pOworICAgICAgICAgICAgICAgIHJl
dHVybiBwbGF0Zm9ybUNBTGF5ZXItPmV2ZW50UmVnaW9uQ29udGFpbnNQb2ludChJbnRQb2ludChs
b2NhbFBvaW50KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfSgpOworCisgICAgICAgIGlmIChoYW5kbGVzRXZlbnQpCisg
ICAgICAgICAgICBsYXllcnNBdFBvaW50LmFwcGVuZChsYXllcik7CisKKyAgICAgICAgaWYgKFts
YXllciBzdWJsYXllcnNdKQorICAgICAgICAgICAgY29sbGVjdERlc2NlbmRhbnRMYXllcnNBdFBv
aW50KGxheWVyc0F0UG9pbnQsIGxheWVyLCBzdWJ2aWV3UG9pbnQpOworICAgIH07Cit9CisKK3N0
YXRpYyBTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlERm9yTGF5ZXIoQ0FMYXllciAqbGF5
ZXIpCit7CisgICAgYXV0byBwbGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRm
b3JtQ0FMYXllckZvckxheWVyKChfX2JyaWRnZSB2b2lkKilsYXllcik7CisgICAgcmV0dXJuIHBs
YXRmb3JtQ0FMYXllciA/IHBsYXRmb3JtQ0FMYXllci0+c2Nyb2xsaW5nTm9kZUlEKCkgOiAwOwor
fQorCitzdGF0aWMgYm9vbCBpc1Njcm9sbGVkQnkoY29uc3QgU2Nyb2xsaW5nVHJlZSYgdHJlZSwg
U2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCwgQ0FMYXllciAqaGl0TGF5ZXIpCit7Cisg
ICAgZm9yIChDQUxheWVyICpsYXllciA9IGhpdExheWVyOyBsYXllcjsgbGF5ZXIgPSBbbGF5ZXIg
c3VwZXJsYXllcl0pIHsKKyAgICAgICAgYXV0byBub2RlSUQgPSBzY3JvbGxpbmdOb2RlSURGb3JM
YXllcihsYXllcik7CisgICAgICAgIGlmIChub2RlSUQgPT0gc2Nyb2xsaW5nTm9kZUlEKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgYXV0byogc2Nyb2xsaW5nTm9kZSA9IHRy
ZWUubm9kZUZvcklEKG5vZGVJRCk7CisgICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxQcm94eU5vZGU+KHNjcm9sbGluZ05vZGUpKSB7CisgICAgICAgICAgICBTY3JvbGxp
bmdOb2RlSUQgYWN0aW5nT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSUQgPSBkb3duY2FzdDxTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGU+KCpzY3JvbGxpbmdOb2RlKS5vdmVyZmxvd1Nj
cm9sbGluZ05vZGVJRCgpOworICAgICAgICAgICAgaWYgKGFjdGluZ092ZXJmbG93U2Nyb2xsaW5n
Tm9kZUlEID09IHNjcm9sbGluZ05vZGVJRCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+
KHNjcm9sbGluZ05vZGUpKSB7CisgICAgICAgICAgICBpZiAoZG93bmNhc3Q8U2Nyb2xsaW5nVHJl
ZVBvc2l0aW9uZWROb2RlPigqc2Nyb2xsaW5nTm9kZSkucmVsYXRlZE92ZXJmbG93U2Nyb2xsaW5n
Tm9kZXMoKS5jb250YWlucyhzY3JvbGxpbmdOb2RlSUQpKQorICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworUmVm
UHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlTWFjOjpzY3JvbGxpbmdOb2RlRm9y
UG9pbnQoRmxvYXRQb2ludCBwb2ludCkKK3sKKyAgICBhdXRvKiByb290U2Nyb2xsaW5nTm9kZSA9
IHJvb3ROb2RlKCk7CisgICAgaWYgKCFyb290U2Nyb2xsaW5nTm9kZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBMb2NrSG9sZGVyIGxvY2tIb2xkZXIobV9sYXllckhpdFRlc3RNdXRl
eCk7CisKKyAgICBhdXRvIHJvb3RDb250ZW50c0xheWVyID0gc3RhdGljX2Nhc3Q8U2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYyo+KHJvb3RTY3JvbGxpbmdOb2RlKS0+cm9vdENvbnRl
bnRzTGF5ZXIoKTsKKworICAgIFZlY3RvcjxDQUxheWVyICosIDE2PiBsYXllcnNBdFBvaW50Owor
ICAgIGNvbGxlY3REZXNjZW5kYW50TGF5ZXJzQXRQb2ludChsYXllcnNBdFBvaW50LCByb290Q29u
dGVudHNMYXllci5nZXQoKSwgcG9pbnQpOworCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGlu
Zywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlTWFjICIgPDwgdGhpcyA8PCAiIHNjcm9sbGluZ05v
ZGVGb3JQb2ludCAiIDw8IHBvaW50IDw8ICIgZm91bmQgIiA8PCBsYXllcnNBdFBvaW50LnNpemUo
KSA8PCAiIGxheWVycyIpOworI2lmICFMT0dfRElTQUJMRUQKKyAgICBmb3IgKGF1dG8gKmxheWVy
IDogV1RGOjptYWtlUmV2ZXJzZWRSYW5nZShsYXllcnNBdFBvaW50KSkKKyAgICAgICAgTE9HX1dJ
VEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICIgbGF5ZXIgIiA8PCBbbGF5ZXIgZGVzY3Jp
cHRpb25dIDw8ICIgc2Nyb2xsaW5nIG5vZGUgIiA8PCBzY3JvbGxpbmdOb2RlSURGb3JMYXllcihs
YXllcikpOworI2VuZGlmCisKKyAgICBmb3IgKGF1dG8gKmxheWVyIDogV1RGOjptYWtlUmV2ZXJz
ZWRSYW5nZShsYXllcnNBdFBvaW50KSkgeworICAgICAgICBhdXRvIG5vZGVJRCA9IHNjcm9sbGlu
Z05vZGVJREZvckxheWVyKGxheWVyKTsKKyAgICAgICAgCisgICAgICAgIGF1dG8qIHNjcm9sbGlu
Z05vZGUgPSBub2RlRm9ySUQobm9kZUlEKTsKKyAgICAgICAgaWYgKCFpczxTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZT4oc2Nyb2xsaW5nTm9kZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgCisgICAgICAgIGlmIChpc1Njcm9sbGVkQnkoKnRoaXMsIG5vZGVJRCwgbGF5ZXJzQXRQ
b2ludC5sYXN0KCkpKQorICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGluZ05vZGU7CisKKyAgICAg
ICAgLy8gRklYTUU6IEhpdC10ZXN0IHNjcm9sbCBpbmRpY2F0b3IgbGF5ZXJzLgorICAgIH0KKwor
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZU1h
YyAiIDw8IHRoaXMgPDwgIiBzY3JvbGxpbmdOb2RlRm9yUG9pbnQgIiA8PCBwb2ludCA8PCAiIGZv
dW5kIG5vIHNjcm9sbGFibGUgbGF5ZXJzOyB1c2luZyByb290IG5vZGUiKTsKKyAgICByZXR1cm4g
cm9vdFNjcm9sbGluZ05vZGU7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZU1hYzo6bG9ja0xheWVy
c0ZvckhpdFRlc3RpbmcoKQogewogICAgIG1fbGF5ZXJIaXRUZXN0TXV0ZXgubG9jaygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCmluZGV4
IDYwNjFhOTYwMTc2ZGExZDc0MjllMWYyMjRiZjFhY2RlZDEyYzFkODQuLjFiNWY4OTVhYzQ3Y2I2
ODViOGVlMjc1ZGNiODBlYTM3MjkwNWM2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBtb25p
dG9yV2hlZWxFdmVudHMoV2ViQ29yZTo6RnJhbWUmIGZyYW1lKQogICAgIGlmICghcGFnZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+ZW5zdXJlV2hlZWxFdmVudFRlc3RNb25pdG9yKCk7
CisgICAgcGFnZS0+ZW5zdXJlV2hlZWxFdmVudFRlc3RNb25pdG9yKCkuY2xlYXJBbGxUZXN0RGVm
ZXJyYWxzKCk7CiB9CiAKIHZvaWQgc2V0VGVzdENhbGxiYWNrQW5kU3RhcnROb3RpZmljYXRpb25U
aW1lcihXZWJDb3JlOjpGcmFtZSYgZnJhbWUsIEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBqc0NhbGxiYWNrRnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4
IDM4NTE5OWNiYTY4N2U4NmZmOTczMDMzM2UzNTk2NDIyYjkxN2M2ZWQuLjVkODA1OTc3OWRkMTZm
OTdlYzJhMmJkNjk2YWFmNDVhODRiNTEyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3Bw
CkBAIC03MDEsNyArNzAxLDcgQEAgdm9pZCBXS0J1bmRsZVBhZ2VTdGFydE1vbml0b3JpbmdTY3Jv
bGxPcGVyYXRpb25zKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQogICAgIGlmICghcGFnZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+ZW5zdXJlV2hlZWxFdmVudFRlc3RNb25pdG9yKCk7
CisgICAgcGFnZS0+ZW5zdXJlV2hlZWxFdmVudFRlc3RNb25pdG9yKCkuY2xlYXJBbGxUZXN0RGVm
ZXJyYWxzKCk7CiB9CiAKIGJvb2wgV0tCdW5kbGVQYWdlUmVnaXN0ZXJTY3JvbGxPcGVyYXRpb25D
b21wbGV0aW9uQ2FsbGJhY2soV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZVRl
c3ROb3RpZmljYXRpb25DYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY29udGV4dCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1
OWVmYjVjNDlmNTQ0ZTI0ZWQxZmYwZjQzYzEzMGYwODkwMTA1MjZkLi44OWIxMTFjYjNjN2Y2OWQy
OGY4ZjZiMTFmMTYzMmMzZTc0MGE1MjM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDMt
MDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgSGl0
LXRlc3QgQ0FMYXllcnMgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQgZm9yIGFzeW5jIGZyYW1lL292
ZXJmbG93IHNjcm9sbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA4NzQwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODAyODgzNj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc29tZSBVSUhl
bHBlciBmdW5jdGlvbnMgZm9yIG1vdXNld2hlZWwgc2Nyb2xsaW5nLCBhbmQgdXNlIHRoZW0gaW4g
bmV3IHRlc3RzLgorICAgICAgICBGaXggc29tZSBvbGQgbWFsZm9ybWVkIGV4cGVjdGF0aW9ucy4K
KworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDAxLWV4
cGVjdGVkLmh0bWw6IFdhcyBtYWxmb3JtZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9z
L2hpdC10ZXN0aW5nLWlmcmFtZS0wMDItZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Nj
cm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwMy1leHBlY3RlZC5odG1sOgorICAgICAg
ICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDA0LWV4cGVjdGVkLmh0
bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDUt
ZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3Rpbmct
aWZyYW1lLTAwNi1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL21hYy9h
YnNvbHV0ZS1pbi1vdmVyZmxvdy1zY3JvbGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3Njcm9sbGluZy9tYWMvYWJzb2x1dGUtaW4tb3ZlcmZsb3ctc2Nyb2xsLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL21hYy9hc3luYy1zY3JvbGwtb3ZlcmZsb3ct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9tYWMvYXN5bmMt
c2Nyb2xsLW92ZXJmbG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL21h
Yy9tb3ZlLW5vZGUtaW4tb3ZlcmZsb3ctc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9zY3JvbGxpbmcvbWFjL21vdmUtbm9kZS1pbi1vdmVyZmxvdy1zY3JvbGwuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbWFjL292ZXJsYXBwZWQtb3ZlcmZs
b3ctc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
bWFjL292ZXJsYXBwZWQtb3ZlcmZsb3ctc2Nyb2xsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJl
c291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuYXN5bmMgbW91
c2VXaGVlbFNjcm9sbEF0KToKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5hc3luYyBhbmltYXRp
b25GcmFtZSk6CisKIDIwMjAtMDMtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMgdG8gU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUKQEAgLTUsNyArMzQsNyBAQAogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFudHRpIEtvaXZpc3RvLgogCi0JCVJlYmFzZWxpbmVkLgorICAgICAgICBSZWJhc2Vs
aW5lZC4KIAogICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbGluZy10cmVl
LXNsb3ctc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dDoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDEtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDAxLWV4
cGVjdGVkLmh0bWwKaW5kZXggNzRkNDJhOTIxN2I4YzkwNWZhNGQyMWU2NWJiYzU4NzU4Y2NmYmQ1
Yy4uNWY3OWM0ZmUzM2I5YTIxMmY0ZmViMzAxMTAyZTNlZjI3MmNhOGQwMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDEtZXhw
ZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3Rp
bmctaWZyYW1lLTAwMS1leHBlY3RlZC5odG1sCkBAIC0xLDUgKzEsNSBAQAogPCFET0NUWVBFIGh0
bWw+Ci08aHRtbAorPGh0bWw+CiAgIDxoZWFkPgogICAgIDx0aXRsZT5IaXQgdGVzdGluZyBvZiBp
ZnJhbWU8L3RpdGxlPgogICA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwMi1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDItZXhwZWN0ZWQu
aHRtbAppbmRleCA3NGQ0MmE5MjE3YjhjOTA1ZmE0ZDIxZTY1YmJjNTg3NThjY2ZiZDVjLi41Zjc5
YzRmZTMzYjlhMjEyZjRmZWIzMDExMDJlM2VmMjcyY2E4ZDAxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwMi1leHBlY3RlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJh
bWUtMDAyLWV4cGVjdGVkLmh0bWwKQEAgLTEsNSArMSw1IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxo
dG1sCis8aHRtbD4KICAgPGhlYWQ+CiAgICAgPHRpdGxlPkhpdCB0ZXN0aW5nIG9mIGlmcmFtZTwv
dGl0bGU+CiAgIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDAzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwMy1leHBlY3RlZC5odG1sCmlu
ZGV4IDc0ZDQyYTkyMTdiOGM5MDVmYTRkMjFlNjViYmM1ODc1OGNjZmJkNWMuLjVmNzljNGZlMzNi
OWEyMTJmNGZlYjMwMTEwMmUzZWYyNzJjYThkMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDAzLWV4cGVjdGVkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDMt
ZXhwZWN0ZWQuaHRtbApAQCAtMSw1ICsxLDUgQEAKIDwhRE9DVFlQRSBodG1sPgotPGh0bWwKKzxo
dG1sPgogICA8aGVhZD4KICAgICA8dGl0bGU+SGl0IHRlc3Rpbmcgb2YgaWZyYW1lPC90aXRsZT4K
ICAgPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL2hp
dC10ZXN0aW5nLWlmcmFtZS0wMDQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDA0LWV4cGVjdGVkLmh0bWwKaW5kZXggNzRk
NDJhOTIxN2I4YzkwNWZhNGQyMWU2NWJiYzU4NzU4Y2NmYmQ1Yy4uNWY3OWM0ZmUzM2I5YTIxMmY0
ZmViMzAxMTAyZTNlZjI3MmNhOGQwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwNC1leHBlY3Rl
ZC5odG1sCkBAIC0xLDUgKzEsNSBAQAogPCFET0NUWVBFIGh0bWw+Ci08aHRtbAorPGh0bWw+CiAg
IDxoZWFkPgogICAgIDx0aXRsZT5IaXQgdGVzdGluZyBvZiBpZnJhbWU8L3RpdGxlPgogICA8L2hl
YWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0LXRlc3Rp
bmctaWZyYW1lLTAwNS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDUtZXhwZWN0ZWQuaHRtbAppbmRleCA3NGQ0MmE5MjE3
YjhjOTA1ZmE0ZDIxZTY1YmJjNTg3NThjY2ZiZDVjLi41Zjc5YzRmZTMzYjlhMjEyZjRmZWIzMDEx
MDJlM2VmMjcyY2E4ZDAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3MvaGl0LXRlc3RpbmctaWZyYW1lLTAwNS1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJhbWUtMDA1LWV4cGVjdGVkLmh0bWwK
QEAgLTEsNSArMSw1IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxodG1sCis8aHRtbD4KICAgPGhlYWQ+
CiAgICAgPHRpdGxlPkhpdCB0ZXN0aW5nIG9mIGlmcmFtZTwvdGl0bGU+CiAgIDwvaGVhZD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQtdGVzdGluZy1pZnJh
bWUtMDA2LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvaGl0
LXRlc3RpbmctaWZyYW1lLTAwNi1leHBlY3RlZC5odG1sCmluZGV4IDc0ZDQyYTkyMTdiOGM5MDVm
YTRkMjFlNjViYmM1ODc1OGNjZmJkNWMuLjVmNzljNGZlMzNiOWEyMTJmNGZlYjMwMTEwMmUzZWYy
NzJjYThkMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9oaXQt
dGVzdGluZy1pZnJhbWUtMDA2LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL2hpdC10ZXN0aW5nLWlmcmFtZS0wMDYtZXhwZWN0ZWQuaHRtbApAQCAtMSw1
ICsxLDUgQEAKIDwhRE9DVFlQRSBodG1sPgotPGh0bWwKKzxodG1sPgogICA8aGVhZD4KICAgICA8
dGl0bGU+SGl0IHRlc3Rpbmcgb2YgaWZyYW1lPC90aXRsZT4KICAgPC9oZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL2Fic29sdXRlLWluLW92ZXJmbG93LXNj
cm9sbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvYWJzb2x1
dGUtaW4tb3ZlcmZsb3ctc2Nyb2xsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2RhNmYwYTQ2
MTZhZmY0NDczODI4ZmM4MzNkYjQ1YjE5ZDRhODcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL2Fic29sdXRlLWluLW92ZXJmbG93LXNjcm9sbC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitUZXN0IHNjcm9sbCBvdmVyIGNvbnRlbnQKK1BB
U1Mgb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID4gMCBpcyB0cnVlCitQQVNTIHdpbmRvd1Njcm9s
bEV2ZW50Q291bnQgPT0gMCBpcyB0cnVlCisKK1Rlc3Qgc2Nyb2xsIG92ZXIgYWJzb2x1dGUgZWxl
bWVudAorUEFTUyBvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQgPT0gMCBpcyB0cnVlCitQQVNTIHdp
bmRvd1Njcm9sbEV2ZW50Q291bnQgPiAwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9tYWMvYWJzb2x1dGUtaW4tb3ZlcmZsb3ctc2Nyb2xsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvYWJzb2x1dGUtaW4tb3ZlcmZsb3ctc2Nyb2xsLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmNjNWFkZmRkNDQ4YTI0NTYzNDEzNThkNzdhZWFkMGI3NjI4Zjc2OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9hYnNvbHV0ZS1p
bi1vdmVyZmxvdy1zY3JvbGwuaHRtbApAQCAtMCwwICsxLDExMyBAQAorPCFET0NUWVBFIGh0bWw+
IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGlu
Z0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAg
IGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgICAgIH0KKyAgICAgICAg
LmNvbnRhaW5lciB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIENvbnRhaW5p
bmcgYmxvY2sgZm9yIHRoZSBpbm5lciBhYnNvbHV0ZSAqLworICAgICAgICAgICAgdG9wOiAxMHB4
OworICAgICAgICAgICAgbGVmdDogMTBweDsKKyAgICAgICAgfQorICAgICAgICAuc2Nyb2xsZXIg
eworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAzMDBweDsK
KyAgICAgICAgICAgIGJvcmRlcjogMjBweCBzb2xpZCBncmF5OworICAgICAgICAgICAgcGFkZGlu
ZzogNXB4OworICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgICAgIG9wYWNp
dHk6IDAuODsgLyogRm9yY2Ugc3RhY2tpbmdjIGNvbnRleHQgKi8KKyAgICAgICAgfQorICAgICAg
ICAuY29udGVudCB7CisgICAgICAgICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgICAgIGhlaWdo
dDogMzAwJTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmFic29sdXRlIHsKKyAgICAg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRvcDogMTAwcHg7CisgICAg
ICAgICAgICBsZWZ0OiA1MHB4OworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAg
ICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2
YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgdmFyIHNjcm9sbGVyOworICAgICAg
ICB2YXIgb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID0gMDsKKyAgICAgICAgdmFyIHdpbmRvd1Nj
cm9sbEV2ZW50Q291bnQgPSAwOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJlc2V0U2Nyb2xs
UG9zaXRpb25zKCkKKyAgICAgICAgeworICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvcCA9IDA7
CisgICAgICAgICAgICBzY3JvbGxlci5zY3JvbGxUb3AgPSAwOworICAgICAgICAgICAgCisgICAg
ICAgICAgICAvLyBXYWl0IGZvciBzY3JvbGwgZXZlbnRzIHRvIGZpcmUuCisgICAgICAgICAgICBh
d2FpdCBVSUhlbHBlci5hbmltYXRpb25GcmFtZSgpOworCisgICAgICAgICAgICBvdmVyZmxvd1Nj
cm9sbEV2ZW50Q291bnQgPSAwOworICAgICAgICAgICAgd2luZG93U2Nyb2xsRXZlbnRDb3VudCA9
IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RTY3Jv
bGxPdmVyQ29udGVudCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlYnVnKCcnKTsKKyAgICAg
ICAgICAgIGRlYnVnKCdUZXN0IHNjcm9sbCBvdmVyIGNvbnRlbnQnKTsKKyAgICAgICAgICAgIGF3
YWl0IHJlc2V0U2Nyb2xsUG9zaXRpb25zKCk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5t
b3VzZVdoZWVsU2Nyb2xsQXQoNTAsIDUwKTsKKworICAgICAgICAgICAgc2hvdWxkQmUoJ292ZXJm
bG93U2Nyb2xsRXZlbnRDb3VudCA+IDAnLCAndHJ1ZScpOworICAgICAgICAgICAgc2hvdWxkQmUo
J3dpbmRvd1Njcm9sbEV2ZW50Q291bnQgPT0gMCcsICd0cnVlJyk7CisgICAgICAgIH0KKworICAg
ICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0U2Nyb2xsT3ZlckFic29sdXRlKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgZGVidWcoJycpOworICAgICAgICAgICAgZGVidWcoJ1Rlc3Qgc2Nyb2xsIG92
ZXIgYWJzb2x1dGUgZWxlbWVudCcpOworICAgICAgICAgICAgYXdhaXQgcmVzZXRTY3JvbGxQb3Np
dGlvbnMoKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCgx
MDAsIDE1MCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNob3VsZEJlKCdvdmVyZmxvd1Nj
cm9sbEV2ZW50Q291bnQgPT0gMCcsICd0cnVlJyk7CisgICAgICAgICAgICBzaG91bGRCZSgnd2lu
ZG93U2Nyb2xsRXZlbnRDb3VudCA+IDAnLCAndHJ1ZScpOworICAgICAgICB9CisKKyAgICAgICAg
YXN5bmMgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF3YWl0
IHRlc3RTY3JvbGxPdmVyQ29udGVudCgpOworICAgICAgICAgICAgYXdhaXQgdGVzdFNjcm9sbE92
ZXJBYnNvbHV0ZSgpOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQor
CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworICAgICAg
ICAgICAgc2Nyb2xsZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2Nyb2xsZXInKTsKKyAg
ICAgICAgICAgIHNjcm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHsKKyAg
ICAgICAgICAgICAgICArK292ZXJmbG93U2Nyb2xsRXZlbnRDb3VudDsKKyAgICAgICAgICAgIH0s
IGZhbHNlKTsKKworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcs
ICgpID0+IHsKKyAgICAgICAgICAgICAgICArK3dpbmRvd1Njcm9sbEV2ZW50Q291bnQ7CisgICAg
ICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwg
MCk7CisgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGVyIj4KKyAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImNvbnRlbnQiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29s
dXRlIj4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAg
ICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvYXN5bmMtc2Nyb2xsLW92ZXJmbG93LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9hc3luYy1zY3JvbGwt
b3ZlcmZsb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4NDQ2ZTI0MWU2ODAyYTNiNzhmOTJi
MGVmMWY4Mzc5NDYyZjdlMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9tYWMvYXN5bmMtc2Nyb2xsLW92ZXJmbG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACisKK1Rlc3Qgc2Nyb2xsIG92ZXIgY29udGVudAorUEFTUyBvdmVyZmxvd1Njcm9sbEV2
ZW50Q291bnQgPiAwIGlzIHRydWUKK1BBU1Mgd2luZG93U2Nyb2xsRXZlbnRDb3VudCA9PSAwIGlz
IHRydWUKKworVGVzdCBzY3JvbGwgb3ZlciBib3JkZXIKK1BBU1Mgb3ZlcmZsb3dTY3JvbGxFdmVu
dENvdW50ID09IDAgaXMgdHJ1ZQorUEFTUyB3aW5kb3dTY3JvbGxFdmVudENvdW50ID4gMCBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL2FzeW5jLXNjcm9sbC1v
dmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL2FzeW5jLXNjcm9s
bC1vdmVyZmxvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0MTc0YTE5MTJlODU0ZTI4ZmVlM2JlYWI4MjY2
NDdjMWY5ZTllZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9tYWMvYXN5bmMtc2Nyb2xsLW92ZXJmbG93Lmh0bWwKQEAgLTAsMCArMSw5OCBAQAorPCFET0NU
WVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+
CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgICAgIH0K
KyAgICAgICAgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgICAgIHRvcDogMTBweDsKKyAgICAgICAgICAgIGxlZnQ6IDEwcHg7CisgICAgICAgICAg
ICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAg
Ym9yZGVyOiAyMHB4IHNvbGlkIGdyYXk7CisgICAgICAgICAgICBwYWRkaW5nOiA1cHg7CisgICAg
ICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICB9CisgICAgICAgIC5jb250ZW50IHsK
KyAgICAgICAgICAgIHdpZHRoOiAyMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAzMDAlOworICAg
ICAgICB9CisgICAgICAgIAorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIHZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICB2YXIgc2Nyb2xsZXI7
CisgICAgICAgIHZhciBvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQgPSAwOworICAgICAgICB2YXIg
d2luZG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcmVz
ZXRTY3JvbGxQb3NpdGlvbnMoKQorICAgICAgICB7CisgICAgICAgICAgICB3aW5kb3cuc2Nyb2xs
VG9wID0gMDsKKyAgICAgICAgICAgIHNjcm9sbGVyLnNjcm9sbFRvcCA9IDA7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIC8vIFdhaXQgZm9yIHNjcm9sbCBldmVudHMgdG8gZmlyZS4KKyAgICAg
ICAgICAgIGF3YWl0IFVJSGVscGVyLmFuaW1hdGlvbkZyYW1lKCk7CisKKyAgICAgICAgICAgIG92
ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7CisgICAgICAgICAgICB3aW5kb3dTY3JvbGxFdmVu
dENvdW50ID0gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24g
dGVzdFNjcm9sbE92ZXJDb250ZW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgZGVidWcoJycp
OworICAgICAgICAgICAgZGVidWcoJ1Rlc3Qgc2Nyb2xsIG92ZXIgY29udGVudCcpOworICAgICAg
ICAgICAgYXdhaXQgcmVzZXRTY3JvbGxQb3NpdGlvbnMoKTsKKyAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCgxMDAsIDEwMCk7CisKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCdvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQgPiAwJywgJ3RydWUnKTsKKyAgICAgICAgICAg
IHNob3VsZEJlKCd3aW5kb3dTY3JvbGxFdmVudENvdW50ID09IDAnLCAndHJ1ZScpOworICAgICAg
ICB9CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbE92ZXJCb3JkZXIoKQorICAg
ICAgICB7CisgICAgICAgICAgICBkZWJ1ZygnJyk7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdCBz
Y3JvbGwgb3ZlciBib3JkZXInKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0U2Nyb2xsUG9zaXRp
b25zKCk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3VzZVdoZWVsU2Nyb2xsQXQoMTUs
IDE1KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2hvdWxkQmUoJ292ZXJmbG93U2Nyb2xs
RXZlbnRDb3VudCA9PSAwJywgJ3RydWUnKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCd3aW5kb3dT
Y3JvbGxFdmVudENvdW50ID4gMCcsICd0cnVlJyk7CisgICAgICAgIH0KKworICAgICAgICBhc3lu
YyBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgYXdhaXQgdGVz
dFNjcm9sbE92ZXJDb250ZW50KCk7CisgICAgICAgICAgICBhd2FpdCB0ZXN0U2Nyb2xsT3ZlckJv
cmRlcigpOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworICAgICAgICAgICAg
c2Nyb2xsZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2Nyb2xsZXInKTsKKyAgICAgICAg
ICAgIHNjcm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHsKKyAgICAgICAg
ICAgICAgICArK292ZXJmbG93U2Nyb2xsRXZlbnRDb3VudDsKKyAgICAgICAgICAgIH0sIGZhbHNl
KTsKKworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+
IHsKKyAgICAgICAgICAgICAgICArK3dpbmRvd1Njcm9sbEV2ZW50Q291bnQ7CisgICAgICAgICAg
ICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7Cisg
ICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgY2xhc3M9InNjcm9s
bGVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+PC9kaXY+CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0ib3ZlcmxhcHBlciI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL21vdmUtbm9kZS1p
bi1vdmVyZmxvdy1zY3JvbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvbWFjL21vdmUtbm9kZS1pbi1vdmVyZmxvdy1zY3JvbGwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdiZWY1YTA1NjlkMjA1NWEzZmRiYmZmYjI5NmJmODFhYjBkMzEzNzYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvbW92ZS1ub2RlLWluLW92ZXJm
bG93LXNjcm9sbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitUZXN0IHNjcm9sbCBv
dmVyIGNvbnRlbnQKK1BBU1Mgb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID4gMCBpcyB0cnVlCitQ
QVNTIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgPT0gMCBpcyB0cnVlCisKK1Rlc3Qgc2Nyb2xsIG92
ZXIgdHJhbnNmb3JtZWQgZWxlbWVudAorUEFTUyBvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQgPiAw
IGlzIHRydWUKK1BBU1Mgd2luZG93U2Nyb2xsRXZlbnRDb3VudCA9PSAwIGlzIHRydWUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvbW92ZS1ub2RlLWluLW92ZXJmbG93LXNj
cm9sbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL21vdmUtbm9kZS1pbi1v
dmVyZmxvdy1zY3JvbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzQ4YjYyMzM4N2E3OWMyZGQzZjY3ZTY3
OTY1NGFkZThjZTBiYTA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvbWFjL21vdmUtbm9kZS1pbi1vdmVyZmxvdy1zY3JvbGwuaHRtbApAQCAtMCwwICsxLDEw
OCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6
QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAxMDAwcHg7
CisgICAgICAgIH0KKyAgICAgICAgLyogbm9uLXN0YWNraW5nIGNvbnRleHQgc2Nyb2xsZXIgKi8K
KyAgICAgICAgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgICAgIHRvcDogMTBweDsKKyAgICAgICAgICAgIGxlZnQ6IDEwcHg7CisgICAgICAgICAg
ICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAg
Ym9yZGVyOiAyMHB4IHNvbGlkIGdyYXk7CisgICAgICAgICAgICBwYWRkaW5nOiA1cHg7CisgICAg
ICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICB9CisgICAgICAgIC5jb250ZW50IHsK
KyAgICAgICAgICAgIHdpZHRoOiAyMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAzMDAlOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICAvKiBTdGFja2luZyBjb250ZXh0IGlzIHRoZSByb290
ICovCisgICAgICAgIC50cmFuc2Zvcm1lZCB7CisgICAgICAgICAgICBtYXJnaW46IDUwcHg7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAg
ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTsKKyAgICAgICAgICAgIHRyYW5zZm9ybTog
dHJhbnNsYXRlWigxcHgpOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHZh
ciBzY3JvbGxlcjsKKyAgICAgICAgdmFyIG92ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7Cisg
ICAgICAgIHZhciB3aW5kb3dTY3JvbGxFdmVudENvdW50ID0gMDsKKworICAgICAgICBhc3luYyBm
dW5jdGlvbiByZXNldFNjcm9sbFBvc2l0aW9ucygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHdp
bmRvdy5zY3JvbGxUb3AgPSAwOworICAgICAgICAgICAgc2Nyb2xsZXIuc2Nyb2xsVG9wID0gMDsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gV2FpdCBmb3Igc2Nyb2xsIGV2ZW50cyB0byBm
aXJlLgorICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYW5pbWF0aW9uRnJhbWUoKTsKKworICAg
ICAgICAgICAgb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID0gMDsKKyAgICAgICAgICAgIHdpbmRv
d1Njcm9sbEV2ZW50Q291bnQgPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBhc3lu
YyBmdW5jdGlvbiB0ZXN0U2Nyb2xsT3ZlckNvbnRlbnQoKQorICAgICAgICB7CisgICAgICAgICAg
ICBkZWJ1ZygnJyk7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdCBzY3JvbGwgb3ZlciBjb250ZW50
Jyk7CisgICAgICAgICAgICBhd2FpdCByZXNldFNjcm9sbFBvc2l0aW9ucygpOworICAgICAgICAg
ICAgYXdhaXQgVUlIZWxwZXIubW91c2VXaGVlbFNjcm9sbEF0KDUwLCA1MCk7CisKKyAgICAgICAg
ICAgIHNob3VsZEJlKCdvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQgPiAwJywgJ3RydWUnKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlKCd3aW5kb3dTY3JvbGxFdmVudENvdW50ID09IDAnLCAndHJ1ZScp
OworICAgICAgICB9CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbE92ZXJUcmFu
c2Zvcm1lZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlYnVnKCcnKTsKKyAgICAgICAgICAg
IGRlYnVnKCdUZXN0IHNjcm9sbCBvdmVyIHRyYW5zZm9ybWVkIGVsZW1lbnQnKTsKKyAgICAgICAg
ICAgIGF3YWl0IHJlc2V0U2Nyb2xsUG9zaXRpb25zKCk7CisgICAgICAgICAgICBhd2FpdCBVSUhl
bHBlci5tb3VzZVdoZWVsU2Nyb2xsQXQoMTUwLCAxNTApOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBzaG91bGRCZSgnb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID4gMCcsICd0cnVlJyk7Cisg
ICAgICAgICAgICBzaG91bGRCZSgnd2luZG93U2Nyb2xsRXZlbnRDb3VudCA9PSAwJywgJ3RydWUn
KTsKKyAgICAgICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQorICAg
ICAgICB7CisgICAgICAgICAgICBhd2FpdCB0ZXN0U2Nyb2xsT3ZlckNvbnRlbnQoKTsKKyAgICAg
ICAgICAgIGF3YWl0IHRlc3RTY3JvbGxPdmVyVHJhbnNmb3JtZWQoKTsKKworICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgICAgIHNjcm9sbGVyID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignLnNjcm9sbGVyJyk7CisgICAgICAgICAgICBzY3JvbGxlci5hZGRFdmVudExp
c3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgKytvdmVyZmxvd1Njcm9s
bEV2ZW50Q291bnQ7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgKyt3
aW5kb3dTY3JvbGxFdmVudENvdW50OworICAgICAgICAgICAgfSwgZmFsc2UpOworCisgICAgICAg
ICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOworICAgICAgICB9LCBmYWxzZSk7CisKKyAg
ICAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgIDxkaXYgY2xh
c3M9ImNvbnRlbnQiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhbnNmb3JtZWQiPjwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvb3ZlcmxhcHBlZC1vdmVy
Zmxvdy1zY3JvbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFj
L292ZXJsYXBwZWQtb3ZlcmZsb3ctc2Nyb2xsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTk5
MzA0NzZmYTNiMzFhMTU5NDk1MDg2ODNiYWFhNGExNmYxZmY0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL292ZXJsYXBwZWQtb3ZlcmZsb3ctc2Nyb2xs
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACisKK1Rlc3Qgc2Nyb2xsIG92ZXIgY29udGVu
dAorUEFTUyBvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQgPiAwIGlzIHRydWUKK1BBU1Mgd2luZG93
U2Nyb2xsRXZlbnRDb3VudCA9PSAwIGlzIHRydWUKKworVGVzdCBzY3JvbGwgb3ZlciBvdmVybGFw
cGluZyBlbGVtZW50CitQQVNTIG92ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA9PSAwIGlzIHRydWUK
K1BBU1Mgd2luZG93U2Nyb2xsRXZlbnRDb3VudCA+IDAgaXMgdHJ1ZQorCitUZXN0IHNjcm9sbCBv
dmVyIG92ZXJsYXBwaW5nIGVsZW1lbnQgb3V0c2lkZSBib3JkZXIKK1BBU1Mgb3ZlcmZsb3dTY3Jv
bGxFdmVudENvdW50ID4gMCBpcyB0cnVlCitQQVNTIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgPT0g
MCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbWFjL292ZXJsYXBw
ZWQtb3ZlcmZsb3ctc2Nyb2xsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMv
b3ZlcmxhcHBlZC1vdmVyZmxvdy1zY3JvbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDkzZmM1Njk0NzA0
MTE0ZDZhMTk0YzdjNzg3MGQ3NDcwZjZjNGYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbWFjL292ZXJsYXBwZWQtb3ZlcmZsb3ctc2Nyb2xsLmh0bWwKQEAg
LTAsMCArMSwxMjEgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdo
dDogMTAwMHB4OworICAgICAgICB9CisgICAgICAgIC5zY3JvbGxlciB7CisgICAgICAgICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0b3A6IDEwcHg7CisgICAgICAgICAgICBs
ZWZ0OiAxMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIHdpZHRo
OiAzMDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMjBweCBzb2xpZCBncmF5OworICAgICAgICAg
ICAgcGFkZGluZzogNXB4OworICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAg
fQorICAgICAgICAuY29udGVudCB7CisgICAgICAgICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAg
ICAgIGhlaWdodDogMzAwJTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLm92ZXJsYXBw
ZXIgeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6
IDMwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIHRvcDogMjAw
cHg7CisgICAgICAgICAgICBsZWZ0OiAyMDBweDsKKyAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6
IDUwJTsKKyAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IGJsYWNrOyAvKiBJbmZsYXRl
IGxheWVyIHNpemUgZm9yIHRlc3RpbmcgKi8KKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IHJnYmEoMCwgMCwgMTI4LCAwLjUpOworICAgICAgICB9CisgICAgICAgIAorICAgIDwvc3R5bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgICAgICB2YXIgc2Nyb2xsZXI7CisgICAgICAgIHZhciBvdmVyZmxvd1Njcm9sbEV2
ZW50Q291bnQgPSAwOworICAgICAgICB2YXIgd2luZG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7CisK
KyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcmVzZXRTY3JvbGxQb3NpdGlvbnMoKQorICAgICAgICB7
CisgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG9wID0gMDsKKyAgICAgICAgICAgIHNjcm9sbGVy
LnNjcm9sbFRvcCA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFdhaXQgZm9yIHNj
cm9sbCBldmVudHMgdG8gZmlyZS4KKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFuaW1hdGlv
bkZyYW1lKCk7CisKKyAgICAgICAgICAgIG92ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7Cisg
ICAgICAgICAgICB3aW5kb3dTY3JvbGxFdmVudENvdW50ID0gMDsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbE92ZXJDb250ZW50KCkKKyAgICAg
ICAgeworICAgICAgICAgICAgZGVidWcoJycpOworICAgICAgICAgICAgZGVidWcoJ1Rlc3Qgc2Ny
b2xsIG92ZXIgY29udGVudCcpOworICAgICAgICAgICAgYXdhaXQgcmVzZXRTY3JvbGxQb3NpdGlv
bnMoKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCg1MCwg
NTApOworCisgICAgICAgICAgICBzaG91bGRCZSgnb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID4g
MCcsICd0cnVlJyk7CisgICAgICAgICAgICBzaG91bGRCZSgnd2luZG93U2Nyb2xsRXZlbnRDb3Vu
dCA9PSAwJywgJ3RydWUnKTsKKyAgICAgICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRl
c3RTY3JvbGxPdmVyT3ZlcmxhcHBlcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlYnVnKCcn
KTsKKyAgICAgICAgICAgIGRlYnVnKCdUZXN0IHNjcm9sbCBvdmVyIG92ZXJsYXBwaW5nIGVsZW1l
bnQnKTsKKyAgICAgICAgICAgIGF3YWl0IHJlc2V0U2Nyb2xsUG9zaXRpb25zKCk7CisgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci5tb3VzZVdoZWVsU2Nyb2xsQXQoMzAwLCAzMDApOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBzaG91bGRCZSgnb3ZlcmZsb3dTY3JvbGxFdmVudENvdW50ID09
IDAnLCAndHJ1ZScpOworICAgICAgICAgICAgc2hvdWxkQmUoJ3dpbmRvd1Njcm9sbEV2ZW50Q291
bnQgPiAwJywgJ3RydWUnKTsKKyAgICAgICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRl
c3RTY3JvbGxPdmVyT3ZlcmxhcHBlck91dHNpZGVSYWRpdXMoKQorICAgICAgICB7CisgICAgICAg
ICAgICBkZWJ1ZygnJyk7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdCBzY3JvbGwgb3ZlciBvdmVy
bGFwcGluZyBlbGVtZW50IG91dHNpZGUgYm9yZGVyJyk7CisgICAgICAgICAgICBhd2FpdCByZXNl
dFNjcm9sbFBvc2l0aW9ucygpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIubW91c2VXaGVl
bFNjcm9sbEF0KDIzMCwgMjMwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2hvdWxkQmUo
J292ZXJmbG93U2Nyb2xsRXZlbnRDb3VudCA+IDAnLCAndHJ1ZScpOworICAgICAgICAgICAgc2hv
dWxkQmUoJ3dpbmRvd1Njcm9sbEV2ZW50Q291bnQgPT0gMCcsICd0cnVlJyk7CisgICAgICAgIH0K
KworICAgICAgICBhc3luYyBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKKyAgICAgICAgeworICAgICAg
ICAgICAgYXdhaXQgdGVzdFNjcm9sbE92ZXJDb250ZW50KCk7CisgICAgICAgICAgICBhd2FpdCB0
ZXN0U2Nyb2xsT3Zlck92ZXJsYXBwZXIoKTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RTY3JvbGxP
dmVyT3ZlcmxhcHBlck91dHNpZGVSYWRpdXMoKTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
ICgpID0+IHsKKyAgICAgICAgICAgIHNjcm9sbGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
LnNjcm9sbGVyJyk7CisgICAgICAgICAgICBzY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCdzY3Jv
bGwnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgKytvdmVyZmxvd1Njcm9sbEV2ZW50Q291bnQ7
CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgKyt3aW5kb3dTY3JvbGxF
dmVudENvdW50OworICAgICAgICAgICAgfSwgZmFsc2UpOworCisgICAgICAgICAgICBzZXRUaW1l
b3V0KHNjcm9sbFRlc3QsIDApOworICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgdmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQi
PjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9Im92ZXJsYXBwZXIiPjwvZGl2Pgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNl
cy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4
IDdjY2EwZDNiYTYwOTlhNGY5Y2M2ZTQ1MjY5YjE5MTljZTQyYjQ5YTYuLmQxMTI0ZmY4NTQyNzM2
NTZhNjU5Zjk5MDgyYjNlYzI3ZDY4Y2I5MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291
cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5q
cwpAQCAtMjgsNiArMjgsMjUgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewog
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4MiwgeTIpOwogICAgICAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBhc3luYyBtb3VzZVdoZWVs
U2Nyb2xsQXQoeCwgeSkKKyAgICB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2
ZW50cygpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAiYmVnYW4iLCAibm9uZSIpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEwLCAiY2hhbmdlZCIsICJub25lIik7CisgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAiZW5kZWQiLCAibm9uZSIpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7CisgICAgICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0
ZXMoKCkgPT4geworICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShyZXNvbHZl
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgYXN5
bmMgYW5pbWF0aW9uRnJhbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJl
cXVlc3RBbmltYXRpb25GcmFtZSk7CisgICAgfQogCiAgICAgc3RhdGljIHNlbmRFdmVudFN0cmVh
bShldmVudFN0cmVhbSkKICAgICB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>