<?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>225854</bug_id>
          
          <creation_ts>2021-05-16 10:48:13 -0700</creation_ts>
          <short_desc>Support serializing ImageData object colorSpace property in SerializedScriptValue</short_desc>
          <delta_ts>2021-05-16 15:01:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760629</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-16 10:48:13 -0700</bug_when>
    <thetext>Support serializing ImageData object colorSpace property in SerializedScriptValue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760631</commentid>
    <comment_count>1</comment_count>
      <attachid>428795</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-16 11:00:09 -0700</bug_when>
    <thetext>Created attachment 428795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760635</commentid>
    <comment_count>2</comment_count>
      <attachid>428795</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-16 11:29:28 -0700</bug_when>
    <thetext>Comment on attachment 428795
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760654</commentid>
    <comment_count>3</comment_count>
      <attachid>428804</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-16 13:38:20 -0700</bug_when>
    <thetext>Created attachment 428804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760657</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-16 15:00:38 -0700</bug_when>
    <thetext>Committed r277574 (237802@main): &lt;https://commits.webkit.org/237802@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428804.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760658</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-16 15:01:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/78083757&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428795</attachid>
            <date>2021-05-16 11:00:09 -0700</date>
            <delta_ts>2021-05-16 13:38:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225854-20210516110008.patch</filename>
            <type>text/plain</type>
            <size>21643</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzU3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDIxLTA1LTE2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IHNlcmlhbGl6aW5nIElt
YWdlRGF0YSBvYmplY3QgY29sb3JTcGFjZSBwcm9wZXJ0eSBpbiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTg1
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6
IHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtaW1hZ2UtZGF0YS1kaXNwbGF5LXAz
Lmh0bWwKKworICAgICAgICBVcGRhdGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHNjaGVtYSB0byB2
ZXJzaW9uIDggYW5kIGFkZCBzZXJpYWxpemF0aW9uCisgICAgICAgIG9mIHRoZSBjb2xvclNwYWNl
IHByb3BlcnR5LgorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlVGFnKToKKyAgICAg
ICAgQWRkIGNvcHkgb2YgdGhlIFByZWRlZmluZWRDb2xvclNwYWNlIHZhbHVlcyB0aGF0IGFyZSBn
dWFyYW50ZWVkIHRvCisgICAgICAgIHN0YXkgY29uc2lzdGVudCBmb3JldmVyLgorCisgICAgICAg
IChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAgICAgICAgQWRk
IGVuY29kaW5nIG9mIHRoZSBjb2xvclNwYWNlIHdoZW4gc2VyaWFsaXppbmcgSW1hZ2VEYXRhLgor
CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OndyaXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkKToKKyAgICAgICAgQWRkIGNvZGVycyBmb3Ig
UHJlZGVmaW5lZENvbG9yU3BhY2VUYWcuCisKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJp
YWxpemVyOjpnZXRKU1ZhbHVlKToKKyAgICAgICAgUmVwbGFjZSBtdWx0aXBsZSBvdmVybG9hZHMg
d2l0aCBvbmUgcGVyZmVjdCBmb3J3YXJkaW5nIG92ZXJsb2FkIHdoaWNoIGRvZXMKKyAgICAgICAg
d2hhdCB3ZSB3YW50IGFuZCB3b3JrcyB3aXRoIHItdmFsdWVzLgorCisgICAgICAgIChXZWJDb3Jl
OjpDbG9uZURlc2VyaWFsaXplcjo6cmVhZEltYWdlQml0bWFwKToKKyAgICAgICAgVXNlIGF1dG8g
aW4gdHdvIHBsYWNlcy4KKworICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnJl
YWRUZXJtaW5hbCk6CisgICAgICAgIEFkZCBkZWNvZGluZyBvZiB0aGUgY29sb3JTcGFjZSB3aGVu
IGRlc2VyaWFsaXppbmcgSW1hZ2VEYXRhLiBGb3IgcHJpb3IgdmVyc2lvbnMsCisgICAgICAgIHRo
ZSBjb2xvclNwYWNlIGRlZmF1bHRzIHRvIHNSR0IsIHdoaWNoIHdhcyB0aGUgb25seSBjb2xvciBz
cGFjZSBzdXBwb3J0ZWQuCisKIDIwMjEtMDUtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBNb2Rlcm5pemUgLyBPcHRpbWl6ZSBTUUxpdGVTdGF0ZW1lbnQgY3Jl
YXRpb24gYW5kIHByZXBhcmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHJldmlzaW9uIDI3NzU2OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIzMyw5ICsyMzMsMTUgQEAgc3RhdGljIHVuc2lnbmVkIHR5cGVkQXJy
YXlFbGVtZW50U2l6ZShBcgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
LQogfQogCitlbnVtIGNsYXNzIFByZWRlZmluZWRDb2xvclNwYWNlVGFnIDogdWludDhfdCB7Cisg
ICAgU1JHQiA9IDAKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9Q
MykKKyAgICAsIERpc3BsYXlQMyA9IDEKKyNlbmRpZgorfTsKKwogI2lmIEVOQUJMRShXRUJfQ1JZ
UFRPKQogCiBjb25zdCB1aW50MzJfdCBjdXJyZW50S2V5Rm9ybWF0VmVyc2lvbiA9IDE7CkBAIC0z
MTQsOCArMzIwLDkgQEAgc3RhdGljIHVuc2lnbmVkIGNvdW50VXNhZ2VzKENyeXB0b0tleVVzYQog
ICogVmVyc2lvbiA1LiBhZGRlZCBzdXBwb3J0IGZvciBNYXAgYW5kIFNldCB0eXBlcy4KICAqIFZl
cnNpb24gNi4gYWRkZWQgc3VwcG9ydCBmb3IgOC1iaXQgc3RyaW5ncy4KICAqIFZlcnNpb24gNy4g
YWRkZWQgc3VwcG9ydCBmb3IgRmlsZSdzIGxhc3RNb2RpZmllZCBhdHRyaWJ1dGUuCisgKiBWZXJz
aW9uIDguIGFkZGVkIHN1cHBvcnQgZm9yIEltYWdlRGF0YSdzIGNvbG9yU3BhY2UgYXR0cmlidXRl
LgogICovCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgQ3VycmVudFZlcnNpb24gPSA3Oworc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIEN1cnJlbnRWZXJzaW9uID0gODsKIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBUZXJtaW5hdG9yVGFnID0gMHhGRkZGRkZGRjsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJp
bmdQb29sVGFnID0gMHhGRkZGRkZGRTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBOb25JbmRleFBy
b3BlcnRpZXNUYWcgPSAweEZGRkZGRkZEOwpAQCAtNDIzLDcgKzQzMCw3IEBAIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJpbmdEYXRhSXM4Qml0RmwKICAqICAgIEZpbGVMaXN0VGFnIDxsZW5ndGg6
dWludDMyX3Q+KDxmaWxlOkZpbGVEYXRhPil7bGVuZ3RofQogICoKICAqIEltYWdlRGF0YSA6LQot
ICogICAgSW1hZ2VEYXRhVGFnIDx3aWR0aDppbnQzMl90PjxoZWlnaHQ6aW50MzJfdD48bGVuZ3Ro
OnVpbnQzMl90PjxkYXRhOnVpbnQ4X3R7bGVuZ3RofT4KKyAqICAgIEltYWdlRGF0YVRhZyA8d2lk
dGg6aW50MzJfdD4gPGhlaWdodDppbnQzMl90PiA8bGVuZ3RoOnVpbnQzMl90PiA8ZGF0YTp1aW50
OF90e2xlbmd0aH0+IDxjb2xvclNwYWNlOlByZWRlZmluZWRDb2xvclNwYWNlVGFnPgogICoKICAq
IEJsb2IgOi0KICAqICAgIEJsb2JUYWcgPHVybDpTdHJpbmdEYXRhPjx0eXBlOlN0cmluZ0RhdGE+
PHNpemU6bG9uZyBsb25nPgpAQCAtMTIyOSw2ICsxMjM2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICB3cml0ZShkYXRhLT5oZWlnaHQoKSk7CiAgICAgICAgICAgICAgICAgd3JpdGUoZGF0
YS0+ZGF0YSgpLmxlbmd0aCgpKTsKICAgICAgICAgICAgICAgICB3cml0ZShkYXRhLT5kYXRhKCku
ZGF0YSgpLCBkYXRhLT5kYXRhKCkubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHdyaXRlKGRh
dGEtPmNvbG9yU3BhY2UoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBpZiAoYXV0byogcmVnRXhwID0ganNEeW5hbWljQ2FzdDxSZWdF
eHBPYmplY3QqPih2bSwgb2JqKSkgewpAQCAtMTU1OCw2ICsxNTY2LDIwIEBAIHByaXZhdGU6CiAg
ICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PGRvdWJsZT4oZmlsZS5sYXN0TW9kaWZpZWRPdmVycmlk
ZSgpLnZhbHVlT3IoLTEpKSk7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZShQcmVkZWZpbmVkQ29s
b3JTcGFjZSBjb2xvclNwYWNlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChjb2xvclNwYWNlKSB7
CisgICAgICAgIGNhc2UgUHJlZGVmaW5lZENvbG9yU3BhY2U6OlNSR0I6CisgICAgICAgICAgICB3
cml0ZUxpdHRsZUVuZGlhbjx1aW50OF90PihtX2J1ZmZlciwgc3RhdGljX2Nhc3Q8dWludDhfdD4o
UHJlZGVmaW5lZENvbG9yU3BhY2VUYWc6OlNSR0IpKTsKKyAgICAgICAgICAgIGJyZWFrOworI2lm
IEVOQUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKQorICAgICAgICBjYXNl
IFByZWRlZmluZWRDb2xvclNwYWNlOjpEaXNwbGF5UDM6CisgICAgICAgICAgICB3cml0ZUxpdHRs
ZUVuZGlhbjx1aW50OF90PihtX2J1ZmZlciwgc3RhdGljX2Nhc3Q8dWludDhfdD4oUHJlZGVmaW5l
ZENvbG9yU3BhY2VUYWc6OkRpc3BsYXlQMykpOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYK
KyAgICAgICAgfQorICAgIH0KKwogI2lmIEVOQUJMRShXRUJfQ1JZUFRPKQogICAgIHZvaWQgd3Jp
dGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0pCiAgICAgewpAQCAtMjUzNyw2
ICsyNTU5LDI2IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAg
IGJvb2wgcmVhZChQcmVkZWZpbmVkQ29sb3JTcGFjZSYgcmVzdWx0KQorICAgIHsKKyAgICAgICAg
dWludDhfdCB0YWc7CisgICAgICAgIGlmICghcmVhZCh0YWcpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8UHJlZGVmaW5lZENvbG9yU3Bh
Y2VUYWc+KHRhZykpIHsKKyAgICAgICAgY2FzZSBQcmVkZWZpbmVkQ29sb3JTcGFjZVRhZzo6U1JH
QjoKKyAgICAgICAgICAgIHJlc3VsdCA9IFByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdCOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNF
X0RJU1BMQVlfUDMpCisgICAgICAgIGNhc2UgUHJlZGVmaW5lZENvbG9yU3BhY2VUYWc6OkRpc3Bs
YXlQMzoKKyAgICAgICAgICAgIHJlc3VsdCA9IFByZWRlZmluZWRDb2xvclNwYWNlOjpEaXNwbGF5
UDM7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCiAjaWYgRU5BQkxF
KFdFQl9DUllQVE8pCiAgICAgYm9vbCByZWFkKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXImIHJl
c3VsdCkKICAgICB7CkBAIC0yODY0LDE1ICsyOTA2LDkgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAg
ICAgdGVtcGxhdGU8Y2xhc3MgVD4KLSAgICBKU1ZhbHVlIGdldEpTVmFsdWUoVCogbmF0aXZlT2Jq
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRvSlMobV9sZXhpY2FsR2xvYmFsT2JqZWN0LCBqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihtX2dsb2JhbE9iamVjdCksIG5hdGl2ZU9iaik7Ci0gICAg
fQotCi0gICAgdGVtcGxhdGU8Y2xhc3MgVD4KLSAgICBKU1ZhbHVlIGdldEpTVmFsdWUoVCYgbmF0
aXZlT2JqKQorICAgIEpTVmFsdWUgZ2V0SlNWYWx1ZShUJiYgbmF0aXZlT2JqKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRvSlMobV9sZXhpY2FsR2xvYmFsT2JqZWN0LCBqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihtX2dsb2JhbE9iamVjdCksIG5hdGl2ZU9iaik7CisgICAgICAgIHJldHVybiB0
b0pTKG1fbGV4aWNhbEdsb2JhbE9iamVjdCwganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obV9n
bG9iYWxPYmplY3QpLCBzdGQ6OmZvcndhcmQ8VD4obmF0aXZlT2JqKSk7CiAgICAgfQogCiAgICAg
dGVtcGxhdGU8Y2xhc3MgVD4KQEAgLTMxNDEsOCArMzE3Nyw4IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgSW50U2l6ZSBsb2dp
Y2FsU2l6ZSA9IEludFNpemUobG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KTsKLSAgICAgICAg
SW50U2l6ZSBpbWFnZURhdGFTaXplID0gbG9naWNhbFNpemU7CisgICAgICAgIGF1dG8gbG9naWNh
bFNpemUgPSBJbnRTaXplKGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCk7CisgICAgICAgIGF1
dG8gaW1hZ2VEYXRhU2l6ZSA9IGxvZ2ljYWxTaXplOwogICAgICAgICBpbWFnZURhdGFTaXplLnNj
YWxlKHJlc29sdXRpb25TY2FsZSk7CiAKICAgICAgICAgYXV0byBidWZmZXIgPSBJbWFnZUJpdG1h
cDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRl
KG1fbGV4aWNhbEdsb2JhbE9iamVjdCksIGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdNb2RlOjpVbmFj
Y2VsZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUpOwpAQCAtMzM3NCwyMyArMzQxMCwzMyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgIGZhaWwoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZSgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFtX2lzRE9NR2xvYmFsT2Jq
ZWN0KSB7Ci0gICAgICAgICAgICAgICAgbV9wdHIgKz0gbGVuZ3RoOwotICAgICAgICAgICAgICAg
IHJldHVybiBqc051bGwoKTsKKyAgICAgICAgICAgIGF1dG8gYnVmZmVyU3RhcnQgPSBtX3B0cjsK
KyAgICAgICAgICAgIG1fcHRyICs9IGxlbmd0aDsKKworICAgICAgICAgICAgYXV0byByZXN1bHRD
b2xvclNwYWNlID0gUHJlZGVmaW5lZENvbG9yU3BhY2U6OlNSR0I7CisgICAgICAgICAgICBpZiAo
bV92ZXJzaW9uID4gNykgeworICAgICAgICAgICAgICAgIGlmICghcmVhZChyZXN1bHRDb2xvclNw
YWNlKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIEludFNpemUgaW1hZ2VTaXplKHdpZHRoLCBoZWlnaHQpOwotICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoIWxlbmd0aCB8fCAoaW1hZ2VTaXplLmFyZWEoKSAqIDQpLnVu
c2FmZUdldCgpIDw9IGxlbmd0aCk7Ci0gICAgICAgICAgICBhdXRvIHJlc3VsdCA9IEltYWdlRGF0
YTo6Y3JlYXRlKGltYWdlU2l6ZSk7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdCkgeworCisgICAg
ICAgICAgICBpZiAobGVuZ3RoICYmIChJbnRTaXplKHdpZHRoLCBoZWlnaHQpLmFyZWEoKSAqIDQp
LnVuc2FmZUdldCgpICE9IGxlbmd0aCkgeworICAgICAgICAgICAgICAgIGZhaWwoKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBpZiAoIW1faXNET01HbG9iYWxPYmplY3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIGpzTnVs
bCgpOworCisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IEltYWdlRGF0YTo6Y3JlYXRlVW5pbml0
aWFsaXplZCh3aWR0aCwgaGVpZ2h0LCByZXN1bHRDb2xvclNwYWNlKTsKKyAgICAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBmYWlsKCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGlmIChsZW5ndGgpCi0gICAgICAgICAgICAgICAgbWVtY3B5KHJlc3VsdC0+ZGF0YSgpLmRhdGEo
KSwgbV9wdHIsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgbWVtY3B5KHJlc3VsdC5yZXR1cm5W
YWx1ZSgpLT5kYXRhKCkuZGF0YSgpLCBidWZmZXJTdGFydCwgbGVuZ3RoKTsKICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQtPmRhdGEoKS56ZXJvRmlsbCgpOwotICAgICAg
ICAgICAgbV9wdHIgKz0gbGVuZ3RoOwotICAgICAgICAgICAgcmV0dXJuIGdldEpTVmFsdWUocmVz
dWx0LmdldCgpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQucmV0dXJuVmFsdWUoKS0+ZGF0YSgp
Lnplcm9GaWxsKCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0SlNWYWx1ZShyZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCkpOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQmxvYlRhZzogewogICAg
ICAgICAgICAgQ2FjaGVkU3RyaW5nUmVmIHVybDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzU2OSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDIxLTA1LTE2ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBT
dXBwb3J0IHNlcmlhbGl6aW5nIEltYWdlRGF0YSBvYmplY3QgY29sb3JTcGFjZSBwcm9wZXJ0eSBp
biBTZXJpYWxpemVkU2NyaXB0VmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNTg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGF0ZXMgZXhpc3RpbmcgdGVzdHMgZm9yIG5ldyBzZXJpYWxpemF0
aW9uIHZlcnNpb24gKHZlcnNpb24gOCkgYW5kIHN1cHBvcnQKKyAgICAgICAgZm9yIHNlcmlhbGl6
aW5nIGNvbG9yIHNwYWNlIGluIEltYWdlRGF0YS4KKworICAgICAgICBUbyBhdm9pZCBtdWx0aXBs
ZSByZXN1bHQgZmlsZXMgZHVlIHRvIGxhY2sgb2Ygc3VwcG9ydCBmb3IgZGlzcGxheS1wMywgdGVz
dGluZworICAgICAgICB0aGF0IHRoZSBkaXNwbGF5LXAzIGNvbG9yIHNwYWNlIGlzIHNlcmlhbGl6
ZWQgY29ycmVjdGx5IHdhcyBwdXQgaW50byBpdHMgb3duCisgICAgICAgIHRlc3QgdGhhdCBpcyBz
a2lwcGVkIG9uIG5vbi1zdXBwb3J0aW5nIHBsYXRmb3Jtcy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dsaWIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgU2tpcCBzdHJ1Y3R1cmVkLWNsb25lLWltYWdlLWRhdGEtZGlzcGxh
eS1wMy5odG1sIG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHN1cHBvcnQKKyAgICAgICAgZGlzcGxh
eS1wMyBjb2xvciBzcGFjZXMuCisKKyAgICAgICAgKiBmYXN0L3N0b3JhZ2Uvc2VyaWFsaXplZC1z
Y3JpcHQtdmFsdWUuaHRtbDoKKyAgICAgICAgQnVtcCB2ZXJzaW9uIHRvIHZlcnNpb24gOC4KKwor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zdHJ1Y3R1cmVkLWNsb25lLmpz
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICBBZGQgdGVzdHMgZm9yIEltYWdlRGF0YSBjb2xvclNwYWNlIHJvdW5kIHRy
aXBwaW5nLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1p
bWFnZS1kYXRhLWRpc3BsYXktcDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWltYWdlLWRhdGEtZGlzcGxheS1wMy5odG1s
OiBBZGRlZC4KKyAgICAgICAgQWRkIHRlc3QgZm9yIEltYWdlRGF0YSBkaXNwbGF5LXAzIGNvbG9y
U3BhY2Ugcm91bmQgdHJpcHBpbmcgYXMgaXRzIG93biB0ZXN0CisgICAgICAgIHRvIGFsbG93IHRh
cmdldHRlZCBza2lwcGluZyBieSBub24tc3VwcG9ydGluZyBwbGF0Zm9ybXMuCisKIDIwMjEtMDUt
MTYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBjcmVhdGluZy9hY2Nlc3Npbmcvc2V0dGluZyBub24tc1JHQiBJbWFnZURhdGEgdmlhIGNh
bnZhcwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2NyaXB0LXZh
bHVlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zdG9yYWdlL3NlcmlhbGl6
ZWQtc2NyaXB0LXZhbHVlLmh0bWwJKHJldmlzaW9uIDI3NzU2OSkKKysrIExheW91dFRlc3RzL2Zh
c3Qvc3RvcmFnZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDcgKzYsNyBAQAogICAgIDxib2R5PgogICAgICAgICA8c2NyaXB0PgogCi1jb25zdCBjdXJy
ZW50VmVyc2lvbiA9IDB4MDc7Citjb25zdCBjdXJyZW50VmVyc2lvbiA9IDB4MDg7CiAKIC8vIEhl
cmUncyBhIGxpdHRsZSBRJkQgaGVscGVyIGZvciBmdXR1cmUgYWR2ZW50dXJlcnMgbmVlZGluZyB0
byByZWJhc2VsaW5lIHRoaXMuCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVz
dEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rl
c3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI3NzU2OSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L2dsaWIvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjM1NywxMCArMjM1Nywx
MyBAQCBmYXN0L3JlcGxhY2VkL3BkZi1hcy1lbWJlZC13aXRoLW5vLW1pbWUtCiAjIEl0IHdhcyBh
IGZsYWt5IGNyYXNoIHVudGlsIHIyNzU1MTYsIGJ1dCBpdCdzIHN0aWxsIGEgdGltZW91dCBmbGFr
eS4KIHdlYmtpdC5vcmcvYi8yMjQxMTIgbWVkaWEvdmlkZW8tYXMtaW1nLW91dHB1dC1wdHMuaHRt
bCBbIFRpbWVvdXQgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8yMjU0MjMgZmFzdC9jYW52YXMvY2Fu
dmFzLWNvbG9yLXNwYWNlLWRpc3BsYXktcDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzIyNTQyMyBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1w
My1JbWFnZURhdGEuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIyNTQyMyBmYXN0L2Nh
bnZhcy9jYW52YXMtY29tcG9zaXRlLXRleHQtYWxwaGEuaHRtbCBbIEZhaWx1cmUgXQogCisjIE5v
bi1zUkdCIGNvbG9yIHNwYWNlcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkgdGhlIGds
aWIgcG9ydHMuCitmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1s
IFsgU2tpcCBdCitmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy1JbWFn
ZURhdGEuaHRtbCBbIFNraXAgXQorc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1p
bWFnZS1kYXRhLWRpc3BsYXktcDMuaHRtbCBbIFNraXAgXQorCiAjIEZhaWxpbmcgYWZ0ZXIgcjI3
NzA3My4KIHdlYmtpdC5vcmcvYi8yMjU0NjIgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWJhY2tncm91bmRzL2JhY2tncm91bmQtcmVwZWF0LXNwYWNlLTEwLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMjU0NjIgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWJhY2tncm91bmRzL2JhY2tncm91bmQtcmVwZWF0LXNwYWNl
LTFhLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAyNzc1NjkpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDYzNSw2ICs0
NjM1LDcgQEAgd2ViZXhwb3NlZC9jb3VudGVyLXN0eWxlLWltYWdlLXN5bWJvbHMtbgogCiBmYXN0
L3RleHQvbGluZS1icmVhay13aXRoLWxvY2FsZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
LSMgTm9uLVNSR0IgY29sb3Igc3BhY2VzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBieSB0
aGUgV2luZG93cyBwb3J0LgorIyBOb24tc1JHQiBjb2xvciBzcGFjZXMgYXJlIG5vdCBjdXJyZW50
bHkgc3VwcG9ydGVkIGJ5IHRoZSBXaW5kb3dzIHBvcnQuCiBmYXN0L2NhbnZhcy9jYW52YXMtY29s
b3Itc3BhY2UtZGlzcGxheS1wMy5odG1sIFsgU2tpcCBdCiBmYXN0L2NhbnZhcy9jYW52YXMtY29s
b3Itc3BhY2UtZGlzcGxheS1wMy1JbWFnZURhdGEuaHRtbCBbIFNraXAgXQorc3RvcmFnZS9pbmRl
eGVkZGIvc3RydWN0dXJlZC1jbG9uZS1pbWFnZS1kYXRhLWRpc3BsYXktcDMuaHRtbCBbIFNraXAg
XQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
c3RydWN0dXJlZC1jbG9uZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3NzU2OSkKKysrIExheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC01ODMsMTAgKzU4MywxMSBAQCBQQVNTIHJlc3VsdC50b1N0cmluZygp
IGlzIHRlc3RfZGF0YS50b1N0CiAKIAogVGVzdGluZyBJbWFnZURhdGEKK1Rlc3RpbmcgSW1hZ2VE
YXRhOiAic3JnYiIKIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpCiBj
YW52YXMud2lkdGggPSA4CiBjYW52YXMuaGVpZ2h0ID0gOAotdGVzdF9kYXRhID0gY2FudmFzLmdl
dENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgsIDgpCit0ZXN0X2RhdGEgPSBjYW52
YXMuZ2V0Q29udGV4dCgnMmQnKS5nZXRJbWFnZURhdGEoMCwgMCwgOCwgOCwgeyBjb2xvclNwYWNl
OiAic3JnYiIgfSkKIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsICdy
ZWFkd3JpdGUnKQogc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykK
IHN0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCkBAIC01OTYsNiArNTk3LDIzIEBAIFBBU1MgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3UKIFBBU1MgcmVzdWx0LndpZHRoIGlzIHRlc3Rf
ZGF0YS53aWR0aAogUEFTUyByZXN1bHQuaGVpZ2h0IGlzIHRlc3RfZGF0YS5oZWlnaHQKIFBBU1Mg
cmVzdWx0LmRhdGEubGVuZ3RoIGlzIHRlc3RfZGF0YS5kYXRhLmxlbmd0aAorUEFTUyByZXN1bHQu
Y29sb3JTcGFjZSBpcyB0ZXN0X2RhdGEuY29sb3JTcGFjZQorUEFTUyByZXN1bHQgZGF0YSBtYXRj
aGVzCitUZXN0aW5nIEltYWdlRGF0YTogdW5kZWZpbmVkCitjYW52YXMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdjYW52YXMnKQorY2FudmFzLndpZHRoID0gOAorY2FudmFzLmhlaWdodCA9IDgK
K3Rlc3RfZGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAwLCA4
LCA4LCB7IGNvbG9yU3BhY2U6IHVuZGVmaW5lZCB9KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2Fj
dGlvbignc3RvcmVOYW1lJywgJ3JlYWR3cml0ZScpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgn
a2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBJbWFnZURhdGFdIgorUEFT
UyByZXN1bHQud2lkdGggaXMgdGVzdF9kYXRhLndpZHRoCitQQVNTIHJlc3VsdC5oZWlnaHQgaXMg
dGVzdF9kYXRhLmhlaWdodAorUEFTUyByZXN1bHQuZGF0YS5sZW5ndGggaXMgdGVzdF9kYXRhLmRh
dGEubGVuZ3RoCitQQVNTIHJlc3VsdC5jb2xvclNwYWNlIGlzIHRlc3RfZGF0YS5jb2xvclNwYWNl
CiBQQVNTIHJlc3VsdCBkYXRhIG1hdGNoZXMKIAogVGVzdGluZyBCbG9iCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWltYWdlLWRhdGEtZGlzcGxh
eS1wMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvc3RydWN0dXJlZC1jbG9uZS1pbWFnZS1kYXRhLWRpc3BsYXktcDMtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVy
ZWQtY2xvbmUtaW1hZ2UtZGF0YS1kaXNwbGF5LXAzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMzIEBACitUZXN0IHN0cnVjdHVyZWQgY2xvbmUgb2YgSW1hZ2VEYXRhIHdp
dGggYSBkaXNwbGF5LXAzIGNvbG9yU3BhY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8
fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWRE
QjsKKworaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRi
bmFtZSkKK3N0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCitUaGlzIGlu
ZGV4IGlzIG5vdCB1c2VkLCBidXQgZXZhbHVhdGluZyBrZXkgcGF0aCBvbiBlYWNoIHB1dCgpIGNh
bGwgd2lsbCBleGVyY2lzZSAoZGUpc2VyaWFsaXphdGlvbjoKK3N0b3JlLmNyZWF0ZUluZGV4KCdp
bmRleE5hbWUnLCAnZHVtbXlLZXlQYXRoJykKKworVGVzdGluZyBJbWFnZURhdGE6IHsgY29sb3JT
cGFjZTogImRpc3BsYXktcDMiIH0KK2NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Nh
bnZhcycpCitjYW52YXMud2lkdGggPSA4CitjYW52YXMuaGVpZ2h0ID0gOAordGVzdF9kYXRhID0g
Y2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgsIDgsIHsgY29sb3JT
cGFjZTogImRpc3BsYXktcDMiIH0pCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9y
ZU5hbWUnLCAncmVhZHdyaXRlJykKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFT
UyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IEltYWdlRGF0YV0iCitQQVNTIHJlc3VsdC53
aWR0aCBpcyB0ZXN0X2RhdGEud2lkdGgKK1BBU1MgcmVzdWx0LmhlaWdodCBpcyB0ZXN0X2RhdGEu
aGVpZ2h0CitQQVNTIHJlc3VsdC5kYXRhLmxlbmd0aCBpcyB0ZXN0X2RhdGEuZGF0YS5sZW5ndGgK
K1BBU1MgcmVzdWx0LmNvbG9yU3BhY2UgaXMgdGVzdF9kYXRhLmNvbG9yU3BhY2UKK1BBU1MgcmVz
dWx0IGRhdGEgbWF0Y2hlcworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVy
ZWQtY2xvbmUtaW1hZ2UtZGF0YS1kaXNwbGF5LXAzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1pbWFnZS1kYXRhLWRpc3Bs
YXktcDMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9zdHJ1Y3R1cmVkLWNsb25lLWltYWdlLWRhdGEtZGlzcGxheS1wMy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsOTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
aGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0IHN0cnVjdHVyZWQgY2xvbmUgb2YgSW1hZ2VEYXRhIHdpdGggYSBkaXNwbGF5
LXAzIGNvbG9yU3BhY2UuIik7CisKKyAgICBpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwg
c3RhcnRUZXN0cyk7CisKKyAgICBmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQorICAgIHsKKyAg
ICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBldmFsQW5kTG9nKCJzdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAgICAgICBkZWJ1Zygi
VGhpcyBpbmRleCBpcyBub3QgdXNlZCwgYnV0IGV2YWx1YXRpbmcga2V5IHBhdGggb24gZWFjaCBw
dXQoKSBjYWxsIHdpbGwgZXhlcmNpc2UgKGRlKXNlcmlhbGl6YXRpb246Iik7CisgICAgICAgIGV2
YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5hbWUnLCAnZHVtbXlLZXlQYXRoJyki
KTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gdGVzdFZhbHVlKHZhbHVlLCBjYWxsYmFjaykK
KyAgICB7CisgICAgICAgIC8vIE9uZSB0cmFuc2FjdGlvbiBwZXIgdGVzdCwgc2luY2Ugc29tZSB0
ZXN0cyByZXF1aXJlIGFzeW5jaHJvbm91cworICAgICAgICAvLyBvcGVyYXRpb25zIHRvIHZlcmlm
eSB0aGUgcmVzdWx0IChlLmcuIHZpYSBGaWxlUmVhZGVyKQorICAgICAgICBldmFsQW5kTG9nKCJ0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCAncmVhZHdyaXRlJykiKTsK
KyAgICAgICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
ICAgICAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Cisg
ICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpIik7CisKKyAgICAgICAgc2VsZi52YWx1ZSA9IHZhbHVlOworICAgICAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygic3RvcmUucHV0KHZhbHVlLCAna2V5JykiKTsKKyAgICAgICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
InN0b3JlLmdldCgna2V5JykiKTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2socmVxdWVzdC5yZXN1bHQpOworICAg
ICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAvLyBJZGVudGl0eSB0ZXN0aW5n
LCBzZW5zaXRpdmUgdG8gTmFOIGFuZCAtMAorICAgIGZ1bmN0aW9uIGlzKHgsIHkpIHsKKyAgICAg
ICAgaWYgKHggPT09IHkpIHsKKyAgICAgICAgICAgIHJldHVybiB4ICE9PSAwIHx8IDEgLyB4ID09
PSAxIC8geTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5Owor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGFycmF5Q29tcGFyZShhLCBiKSB7CisgICAgICAgIGlmIChh
Lmxlbmd0aCAhPT0gYi5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgfQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIGlmICghaXMoYVtpXSwgYltpXSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0cygpCisgICAgeworICAgICAgICBkZWJ1ZygiIik7
CisgICAgICAgIGRlYnVnKGBUZXN0aW5nIEltYWdlRGF0YTogeyBjb2xvclNwYWNlOiAiZGlzcGxh
eS1wMyIgfWApOworICAgICAgICBldmFsQW5kTG9nKCJjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdjYW52YXMnKSIpOworICAgICAgICBldmFsQW5kTG9nKCJjYW52YXMud2lkdGggPSA4
Iik7CisgICAgICAgIGV2YWxBbmRMb2coImNhbnZhcy5oZWlnaHQgPSA4Iik7CisgICAgICAgIGV2
YWxBbmRMb2coYHRlc3RfZGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0
YSgwLCAwLCA4LCA4LCB7IGNvbG9yU3BhY2U6ICJkaXNwbGF5LXAzIiB9KWApOworICAgIAorICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgKytpKSB7CisgICAgICAgICAgICB0ZXN0X2Rh
dGEuZGF0YVtpXSA9IGk7CisgICAgICAgIH0KKworICAgICAgICB0ZXN0VmFsdWUodGVzdF9kYXRh
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gcmVzdWx0Owor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwocmVzdWx0KSIsICJbb2JqZWN0IEltYWdlRGF0YV0iKTsKKyAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHQud2lkdGgiLCAidGVzdF9kYXRhLndpZHRoIik7CisgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0LmhlaWdodCIsICJ0ZXN0X2RhdGEuaGVpZ2h0Iik7CisgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0LmRhdGEubGVuZ3RoIiwgInRlc3RfZGF0YS5kYXRhLmxlbmd0aCIpOworICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdC5jb2xvclNwYWNlIiwgInRlc3RfZGF0YS5jb2xvclNw
YWNlIik7CisgICAgICAgICAgICBpZiAoYXJyYXlDb21wYXJlKHRlc3RfZGF0YS5kYXRhLCByZXN1
bHQuZGF0YSkpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJyZXN1bHQgZGF0YSBtYXRj
aGVzIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
InJlc3VsdCBkYXRhIGRvZXNuJ3QgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL3N0cnVjdHVyZWQtY2xvbmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3N0cnVjdHVyZWQtY2xvbmUuanMJKHJldmlz
aW9uIDI3NzU2OSkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9z
dHJ1Y3R1cmVkLWNsb25lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIsMjkgKzMxMiwzOCBAQCBm
dW5jdGlvbiB0ZXN0UmVnRXhwT2JqZWN0KGNhbGxiYWNrKQogZnVuY3Rpb24gdGVzdEltYWdlRGF0
YShjYWxsYmFjaykKIHsKICAgICBkZWJ1ZygiVGVzdGluZyBJbWFnZURhdGEiKTsKLSAgICBldmFs
QW5kTG9nKCJjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSIpOwotICAg
IGV2YWxBbmRMb2coImNhbnZhcy53aWR0aCA9IDgiKTsKLSAgICBldmFsQW5kTG9nKCJjYW52YXMu
aGVpZ2h0ID0gOCIpOwotICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IGNhbnZhcy5nZXRDb250
ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAwLCA4LCA4KSIpOworICAgIGZ1bmN0aW9uIHRlc3RJ
bWFnZURhdGEoY29sb3JTcGFjZSwgY2FsbGJhY2spIHsKKyAgICAgICAgZGVidWcoYFRlc3Rpbmcg
SW1hZ2VEYXRhOiB7IGNvbG9yU3BhY2U6ICR7Y29sb3JTcGFjZX0gfWApOworICAgICAgICBldmFs
QW5kTG9nKCJjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSIpOworICAg
ICAgICBldmFsQW5kTG9nKCJjYW52YXMud2lkdGggPSA4Iik7CisgICAgICAgIGV2YWxBbmRMb2co
ImNhbnZhcy5oZWlnaHQgPSA4Iik7CisgICAgICAgIGV2YWxBbmRMb2coYHRlc3RfZGF0YSA9IGNh
bnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAwLCA4LCA4LCB7IGNvbG9yU3Bh
Y2U6ICR7Y29sb3JTcGFjZX0gfSlgKTsKIAotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjU2OyAr
K2kpIHsKLSAgICAgICAgdGVzdF9kYXRhLmRhdGFbaV0gPSBpOworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDI1NjsgKytpKSB7CisgICAgICAgICAgICB0ZXN0X2RhdGEuZGF0YVtpXSA9IGk7
CisgICAgICAgIH0KKworICAgICAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJb
b2JqZWN0IEltYWdlRGF0YV0iKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHQud2lkdGgi
LCAidGVzdF9kYXRhLndpZHRoIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0LmhlaWdo
dCIsICJ0ZXN0X2RhdGEuaGVpZ2h0Iik7CisgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0LmRh
dGEubGVuZ3RoIiwgInRlc3RfZGF0YS5kYXRhLmxlbmd0aCIpOworICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdC5jb2xvclNwYWNlIiwgInRlc3RfZGF0YS5jb2xvclNwYWNlIik7CisgICAgICAg
ICAgICBpZiAoYXJyYXlDb21wYXJlKHRlc3RfZGF0YS5kYXRhLCByZXN1bHQuZGF0YSkpIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJyZXN1bHQgZGF0YSBtYXRjaGVzIik7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoInJlc3VsdCBkYXRhIGRv
ZXNuJ3QgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgICAgIH0pOwogICAgIH0KIAotICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJl
c3VsdCkgewotICAgICAgICBzZWxmLnJlc3VsdCA9IHJlc3VsdDsKLSAgICAgICAgc2hvdWxkQmVU
cnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIiwgIltvYmplY3QgSW1h
Z2VEYXRhXSIpOwotICAgICAgICBzaG91bGRCZSgicmVzdWx0LndpZHRoIiwgInRlc3RfZGF0YS53
aWR0aCIpOwotICAgICAgICBzaG91bGRCZSgicmVzdWx0LmhlaWdodCIsICJ0ZXN0X2RhdGEuaGVp
Z2h0Iik7Ci0gICAgICAgIHNob3VsZEJlKCJyZXN1bHQuZGF0YS5sZW5ndGgiLCAidGVzdF9kYXRh
LmRhdGEubGVuZ3RoIik7Ci0gICAgICAgIGlmIChhcnJheUNvbXBhcmUodGVzdF9kYXRhLmRhdGEs
IHJlc3VsdC5kYXRhKSkgewotICAgICAgICAgICAgdGVzdFBhc3NlZCgicmVzdWx0IGRhdGEgbWF0
Y2hlcyIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGVzdEZhaWxlZCgicmVzdWx0
IGRhdGEgZG9lc24ndCBtYXRjaCIpOwotICAgICAgICB9Ci0gICAgICAgIGNhbGxiYWNrKCk7Ci0g
ICAgfSk7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0SW1hZ2VEYXRhLCBbCisgICAgICAg
IGAic3JnYiJgLAorICAgICAgICBgdW5kZWZpbmVkYAorICAgIF0sIGNhbGxiYWNrKTsKIH0KIAog
ZnVuY3Rpb24gcmVhZEJsb2JBc1RleHQoYmxvYiwgY2FsbGJhY2spCg==
</data>
<flag name="review"
          id="449823"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="449828"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428804</attachid>
            <date>2021-05-16 13:38:20 -0700</date>
            <delta_ts>2021-05-16 15:00:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225854-20210516110008.patch</filename>
            <type>text/plain</type>
            <size>21669</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzU3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDIxLTA1LTE2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IHNlcmlhbGl6aW5nIElt
YWdlRGF0YSBvYmplY3QgY29sb3JTcGFjZSBwcm9wZXJ0eSBpbiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTg1
NAorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtaW1hZ2UtZGF0YS1kaXNwbGF5LXAzLmh0
bWwKKworICAgICAgICBVcGRhdGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHNjaGVtYSB0byB2ZXJz
aW9uIDggYW5kIGFkZCBzZXJpYWxpemF0aW9uCisgICAgICAgIG9mIHRoZSBjb2xvclNwYWNlIHBy
b3BlcnR5LgorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlByZWRlZmluZWRDb2xvclNwYWNlVGFnKToKKyAgICAgICAg
QWRkIGNvcHkgb2YgdGhlIFByZWRlZmluZWRDb2xvclNwYWNlIHZhbHVlcyB0aGF0IGFyZSBndWFy
YW50ZWVkIHRvCisgICAgICAgIHN0YXkgY29uc2lzdGVudCBmb3JldmVyLgorCisgICAgICAgIChX
ZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAgICAgICAgQWRkIGVu
Y29kaW5nIG9mIHRoZSBjb2xvclNwYWNlIHdoZW4gc2VyaWFsaXppbmcgSW1hZ2VEYXRhLgorCisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OndyaXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkKToKKyAgICAgICAgQWRkIGNvZGVycyBmb3IgUHJl
ZGVmaW5lZENvbG9yU3BhY2VUYWcuCisKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxp
emVyOjpnZXRKU1ZhbHVlKToKKyAgICAgICAgUmVwbGFjZSBtdWx0aXBsZSBvdmVybG9hZHMgd2l0
aCBvbmUgcGVyZmVjdCBmb3J3YXJkaW5nIG92ZXJsb2FkIHdoaWNoIGRvZXMKKyAgICAgICAgd2hh
dCB3ZSB3YW50IGFuZCB3b3JrcyB3aXRoIHItdmFsdWVzLgorCisgICAgICAgIChXZWJDb3JlOjpD
bG9uZURlc2VyaWFsaXplcjo6cmVhZEltYWdlQml0bWFwKToKKyAgICAgICAgVXNlIGF1dG8gaW4g
dHdvIHBsYWNlcy4KKworICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnJlYWRU
ZXJtaW5hbCk6CisgICAgICAgIEFkZCBkZWNvZGluZyBvZiB0aGUgY29sb3JTcGFjZSB3aGVuIGRl
c2VyaWFsaXppbmcgSW1hZ2VEYXRhLiBGb3IgcHJpb3IgdmVyc2lvbnMsCisgICAgICAgIHRoZSBj
b2xvclNwYWNlIGRlZmF1bHRzIHRvIHNSR0IsIHdoaWNoIHdhcyB0aGUgb25seSBjb2xvciBzcGFj
ZSBzdXBwb3J0ZWQuCisKIDIwMjEtMDUtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBNb2Rlcm5pemUgLyBPcHRpbWl6ZSBTUUxpdGVTdGF0ZW1lbnQgY3JlYXRp
b24gYW5kIHByZXBhcmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHJldmlzaW9uIDI3NzU2OSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIzMyw5ICsyMzMsMTUgQEAgc3RhdGljIHVuc2lnbmVkIHR5cGVkQXJyYXlF
bGVtZW50U2l6ZShBcgogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLQog
fQogCitlbnVtIGNsYXNzIFByZWRlZmluZWRDb2xvclNwYWNlVGFnIDogdWludDhfdCB7CisgICAg
U1JHQiA9IDAKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMykK
KyAgICAsIERpc3BsYXlQMyA9IDEKKyNlbmRpZgorfTsKKwogI2lmIEVOQUJMRShXRUJfQ1JZUFRP
KQogCiBjb25zdCB1aW50MzJfdCBjdXJyZW50S2V5Rm9ybWF0VmVyc2lvbiA9IDE7CkBAIC0zMTQs
OCArMzIwLDkgQEAgc3RhdGljIHVuc2lnbmVkIGNvdW50VXNhZ2VzKENyeXB0b0tleVVzYQogICog
VmVyc2lvbiA1LiBhZGRlZCBzdXBwb3J0IGZvciBNYXAgYW5kIFNldCB0eXBlcy4KICAqIFZlcnNp
b24gNi4gYWRkZWQgc3VwcG9ydCBmb3IgOC1iaXQgc3RyaW5ncy4KICAqIFZlcnNpb24gNy4gYWRk
ZWQgc3VwcG9ydCBmb3IgRmlsZSdzIGxhc3RNb2RpZmllZCBhdHRyaWJ1dGUuCisgKiBWZXJzaW9u
IDguIGFkZGVkIHN1cHBvcnQgZm9yIEltYWdlRGF0YSdzIGNvbG9yU3BhY2UgYXR0cmlidXRlLgog
ICovCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgQ3VycmVudFZlcnNpb24gPSA3Oworc3RhdGljIGNv
bnN0IHVuc2lnbmVkIEN1cnJlbnRWZXJzaW9uID0gODsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBU
ZXJtaW5hdG9yVGFnID0gMHhGRkZGRkZGRjsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJpbmdQ
b29sVGFnID0gMHhGRkZGRkZGRTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBOb25JbmRleFByb3Bl
cnRpZXNUYWcgPSAweEZGRkZGRkZEOwpAQCAtNDIzLDcgKzQzMCw3IEBAIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJpbmdEYXRhSXM4Qml0RmwKICAqICAgIEZpbGVMaXN0VGFnIDxsZW5ndGg6dWlu
dDMyX3Q+KDxmaWxlOkZpbGVEYXRhPil7bGVuZ3RofQogICoKICAqIEltYWdlRGF0YSA6LQotICog
ICAgSW1hZ2VEYXRhVGFnIDx3aWR0aDppbnQzMl90PjxoZWlnaHQ6aW50MzJfdD48bGVuZ3RoOnVp
bnQzMl90PjxkYXRhOnVpbnQ4X3R7bGVuZ3RofT4KKyAqICAgIEltYWdlRGF0YVRhZyA8d2lkdGg6
aW50MzJfdD4gPGhlaWdodDppbnQzMl90PiA8bGVuZ3RoOnVpbnQzMl90PiA8ZGF0YTp1aW50OF90
e2xlbmd0aH0+IDxjb2xvclNwYWNlOlByZWRlZmluZWRDb2xvclNwYWNlVGFnPgogICoKICAqIEJs
b2IgOi0KICAqICAgIEJsb2JUYWcgPHVybDpTdHJpbmdEYXRhPjx0eXBlOlN0cmluZ0RhdGE+PHNp
emU6bG9uZyBsb25nPgpAQCAtMTIyOSw2ICsxMjM2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICB3cml0ZShkYXRhLT5oZWlnaHQoKSk7CiAgICAgICAgICAgICAgICAgd3JpdGUoZGF0YS0+
ZGF0YSgpLmxlbmd0aCgpKTsKICAgICAgICAgICAgICAgICB3cml0ZShkYXRhLT5kYXRhKCkuZGF0
YSgpLCBkYXRhLT5kYXRhKCkubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHdyaXRlKGRhdGEt
PmNvbG9yU3BhY2UoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBpZiAoYXV0byogcmVnRXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBP
YmplY3QqPih2bSwgb2JqKSkgewpAQCAtMTU1OCw2ICsxNTY2LDIwIEBAIHByaXZhdGU6CiAgICAg
ICAgIHdyaXRlKHN0YXRpY19jYXN0PGRvdWJsZT4oZmlsZS5sYXN0TW9kaWZpZWRPdmVycmlkZSgp
LnZhbHVlT3IoLTEpKSk7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZShQcmVkZWZpbmVkQ29sb3JT
cGFjZSBjb2xvclNwYWNlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChjb2xvclNwYWNlKSB7Cisg
ICAgICAgIGNhc2UgUHJlZGVmaW5lZENvbG9yU3BhY2U6OlNSR0I6CisgICAgICAgICAgICB3cml0
ZUxpdHRsZUVuZGlhbjx1aW50OF90PihtX2J1ZmZlciwgc3RhdGljX2Nhc3Q8dWludDhfdD4oUHJl
ZGVmaW5lZENvbG9yU3BhY2VUYWc6OlNSR0IpKTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIEVO
QUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKQorICAgICAgICBjYXNlIFBy
ZWRlZmluZWRDb2xvclNwYWNlOjpEaXNwbGF5UDM6CisgICAgICAgICAgICB3cml0ZUxpdHRsZUVu
ZGlhbjx1aW50OF90PihtX2J1ZmZlciwgc3RhdGljX2Nhc3Q8dWludDhfdD4oUHJlZGVmaW5lZENv
bG9yU3BhY2VUYWc6OkRpc3BsYXlQMykpOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAg
ICAgICAgfQorICAgIH0KKwogI2lmIEVOQUJMRShXRUJfQ1JZUFRPKQogICAgIHZvaWQgd3JpdGUo
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0pCiAgICAgewpAQCAtMjUzNyw2ICsy
NTU5LDI2IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIGJv
b2wgcmVhZChQcmVkZWZpbmVkQ29sb3JTcGFjZSYgcmVzdWx0KQorICAgIHsKKyAgICAgICAgdWlu
dDhfdCB0YWc7CisgICAgICAgIGlmICghcmVhZCh0YWcpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8UHJlZGVmaW5lZENvbG9yU3BhY2VU
YWc+KHRhZykpIHsKKyAgICAgICAgY2FzZSBQcmVkZWZpbmVkQ29sb3JTcGFjZVRhZzo6U1JHQjoK
KyAgICAgICAgICAgIHJlc3VsdCA9IFByZWRlZmluZWRDb2xvclNwYWNlOjpTUkdCOworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJ
U1BMQVlfUDMpCisgICAgICAgIGNhc2UgUHJlZGVmaW5lZENvbG9yU3BhY2VUYWc6OkRpc3BsYXlQ
MzoKKyAgICAgICAgICAgIHJlc3VsdCA9IFByZWRlZmluZWRDb2xvclNwYWNlOjpEaXNwbGF5UDM7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCiAjaWYgRU5BQkxFKFdF
Ql9DUllQVE8pCiAgICAgYm9vbCByZWFkKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXImIHJlc3Vs
dCkKICAgICB7CkBAIC0yODY0LDE1ICsyOTA2LDkgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAg
dGVtcGxhdGU8Y2xhc3MgVD4KLSAgICBKU1ZhbHVlIGdldEpTVmFsdWUoVCogbmF0aXZlT2JqKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRvSlMobV9sZXhpY2FsR2xvYmFsT2JqZWN0LCBqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihtX2dsb2JhbE9iamVjdCksIG5hdGl2ZU9iaik7Ci0gICAgfQot
Ci0gICAgdGVtcGxhdGU8Y2xhc3MgVD4KLSAgICBKU1ZhbHVlIGdldEpTVmFsdWUoVCYgbmF0aXZl
T2JqKQorICAgIEpTVmFsdWUgZ2V0SlNWYWx1ZShUJiYgbmF0aXZlT2JqKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHRvSlMobV9sZXhpY2FsR2xvYmFsT2JqZWN0LCBqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihtX2dsb2JhbE9iamVjdCksIG5hdGl2ZU9iaik7CisgICAgICAgIHJldHVybiB0b0pT
KG1fbGV4aWNhbEdsb2JhbE9iamVjdCwganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obV9nbG9i
YWxPYmplY3QpLCBzdGQ6OmZvcndhcmQ8VD4obmF0aXZlT2JqKSk7CiAgICAgfQogCiAgICAgdGVt
cGxhdGU8Y2xhc3MgVD4KQEAgLTMxNDEsOCArMzE3Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgSW50U2l6ZSBsb2dpY2Fs
U2l6ZSA9IEludFNpemUobG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KTsKLSAgICAgICAgSW50
U2l6ZSBpbWFnZURhdGFTaXplID0gbG9naWNhbFNpemU7CisgICAgICAgIGF1dG8gbG9naWNhbFNp
emUgPSBJbnRTaXplKGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCk7CisgICAgICAgIGF1dG8g
aW1hZ2VEYXRhU2l6ZSA9IGxvZ2ljYWxTaXplOwogICAgICAgICBpbWFnZURhdGFTaXplLnNjYWxl
KHJlc29sdXRpb25TY2FsZSk7CiAKICAgICAgICAgYXV0byBidWZmZXIgPSBJbWFnZUJpdG1hcDo6
Y3JlYXRlSW1hZ2VCdWZmZXIoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKG1f
bGV4aWNhbEdsb2JhbE9iamVjdCksIGxvZ2ljYWxTaXplLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2Vs
ZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUpOwpAQCAtMzM3NCwyMyArMzQxMCwzMyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIGZhaWwoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZSgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFtX2lzRE9NR2xvYmFsT2JqZWN0
KSB7Ci0gICAgICAgICAgICAgICAgbV9wdHIgKz0gbGVuZ3RoOwotICAgICAgICAgICAgICAgIHJl
dHVybiBqc051bGwoKTsKKyAgICAgICAgICAgIGF1dG8gYnVmZmVyU3RhcnQgPSBtX3B0cjsKKyAg
ICAgICAgICAgIG1fcHRyICs9IGxlbmd0aDsKKworICAgICAgICAgICAgYXV0byByZXN1bHRDb2xv
clNwYWNlID0gUHJlZGVmaW5lZENvbG9yU3BhY2U6OlNSR0I7CisgICAgICAgICAgICBpZiAobV92
ZXJzaW9uID4gNykgeworICAgICAgICAgICAgICAgIGlmICghcmVhZChyZXN1bHRDb2xvclNwYWNl
KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIEludFNpemUgaW1hZ2VTaXplKHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoIWxlbmd0aCB8fCAoaW1hZ2VTaXplLmFyZWEoKSAqIDQpLnVuc2Fm
ZUdldCgpIDw9IGxlbmd0aCk7Ci0gICAgICAgICAgICBhdXRvIHJlc3VsdCA9IEltYWdlRGF0YTo6
Y3JlYXRlKGltYWdlU2l6ZSk7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdCkgeworCisgICAgICAg
ICAgICBpZiAobGVuZ3RoICYmIChJbnRTaXplKHdpZHRoLCBoZWlnaHQpLmFyZWEoKSAqIDQpLnVu
c2FmZUdldCgpICE9IGxlbmd0aCkgeworICAgICAgICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBp
ZiAoIW1faXNET01HbG9iYWxPYmplY3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIGpzTnVsbCgp
OworCisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IEltYWdlRGF0YTo6Y3JlYXRlVW5pbml0aWFs
aXplZCh3aWR0aCwgaGVpZ2h0LCByZXN1bHRDb2xvclNwYWNlKTsKKyAgICAgICAgICAgIGlmIChy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBmYWlsKCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlm
IChsZW5ndGgpCi0gICAgICAgICAgICAgICAgbWVtY3B5KHJlc3VsdC0+ZGF0YSgpLmRhdGEoKSwg
bV9wdHIsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgbWVtY3B5KHJlc3VsdC5yZXR1cm5WYWx1
ZSgpLT5kYXRhKCkuZGF0YSgpLCBidWZmZXJTdGFydCwgbGVuZ3RoKTsKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICByZXN1bHQtPmRhdGEoKS56ZXJvRmlsbCgpOwotICAgICAgICAg
ICAgbV9wdHIgKz0gbGVuZ3RoOwotICAgICAgICAgICAgcmV0dXJuIGdldEpTVmFsdWUocmVzdWx0
LmdldCgpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQucmV0dXJuVmFsdWUoKS0+ZGF0YSgpLnpl
cm9GaWxsKCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0SlNWYWx1ZShyZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCkpOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQmxvYlRhZzogewogICAgICAg
ICAgICAgQ2FjaGVkU3RyaW5nUmVmIHVybDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NzU2OSkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisy
MDIxLTA1LTE2ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBw
b3J0IHNlcmlhbGl6aW5nIEltYWdlRGF0YSBvYmplY3QgY29sb3JTcGFjZSBwcm9wZXJ0eSBpbiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNTg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6Lgor
CisgICAgICAgIFVwZGF0ZXMgZXhpc3RpbmcgdGVzdHMgZm9yIG5ldyBzZXJpYWxpemF0aW9uIHZl
cnNpb24gKHZlcnNpb24gOCkgYW5kIHN1cHBvcnQKKyAgICAgICAgZm9yIHNlcmlhbGl6aW5nIGNv
bG9yIHNwYWNlIGluIEltYWdlRGF0YS4KKworICAgICAgICBUbyBhdm9pZCBtdWx0aXBsZSByZXN1
bHQgZmlsZXMgZHVlIHRvIGxhY2sgb2Ygc3VwcG9ydCBmb3IgZGlzcGxheS1wMywgdGVzdGluZwor
ICAgICAgICB0aGF0IHRoZSBkaXNwbGF5LXAzIGNvbG9yIHNwYWNlIGlzIHNlcmlhbGl6ZWQgY29y
cmVjdGx5IHdhcyBwdXQgaW50byBpdHMgb3duCisgICAgICAgIHRlc3QgdGhhdCBpcyBza2lwcGVk
IG9uIG5vbi1zdXBwb3J0aW5nIHBsYXRmb3Jtcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dsaWIv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgU2tpcCBzdHJ1Y3R1cmVkLWNsb25lLWltYWdlLWRhdGEtZGlzcGxheS1wMy5o
dG1sIG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHN1cHBvcnQKKyAgICAgICAgZGlzcGxheS1wMyBj
b2xvciBzcGFjZXMuCisKKyAgICAgICAgKiBmYXN0L3N0b3JhZ2Uvc2VyaWFsaXplZC1zY3JpcHQt
dmFsdWUuaHRtbDoKKyAgICAgICAgQnVtcCB2ZXJzaW9uIHRvIHZlcnNpb24gOC4KKworICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zdHJ1Y3R1cmVkLWNsb25lLmpzOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICBBZGQgdGVzdHMgZm9yIEltYWdlRGF0YSBjb2xvclNwYWNlIHJvdW5kIHRyaXBwaW5n
LgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1pbWFnZS1k
YXRhLWRpc3BsYXktcDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWltYWdlLWRhdGEtZGlzcGxheS1wMy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgQWRkIHRlc3QgZm9yIEltYWdlRGF0YSBkaXNwbGF5LXAzIGNvbG9yU3BhY2Ug
cm91bmQgdHJpcHBpbmcgYXMgaXRzIG93biB0ZXN0CisgICAgICAgIHRvIGFsbG93IHRhcmdldHRl
ZCBza2lwcGluZyBieSBub24tc3VwcG9ydGluZyBwbGF0Zm9ybXMuCisKIDIwMjEtMDUtMTYgIFNh
bSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBj
cmVhdGluZy9hY2Nlc3Npbmcvc2V0dGluZyBub24tc1JHQiBJbWFnZURhdGEgdmlhIGNhbnZhcwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2NyaXB0LXZhbHVlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zdG9yYWdlL3NlcmlhbGl6ZWQtc2Ny
aXB0LXZhbHVlLmh0bWwJKHJldmlzaW9uIDI3NzU2OSkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3Rv
cmFnZS9zZXJpYWxpemVkLXNjcmlwdC12YWx1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcg
KzYsNyBAQAogICAgIDxib2R5PgogICAgICAgICA8c2NyaXB0PgogCi1jb25zdCBjdXJyZW50VmVy
c2lvbiA9IDB4MDc7Citjb25zdCBjdXJyZW50VmVyc2lvbiA9IDB4MDg7CiAKIC8vIEhlcmUncyBh
IGxpdHRsZSBRJkQgaGVscGVyIGZvciBmdXR1cmUgYWR2ZW50dXJlcnMgbmVlZGluZyB0byByZWJh
c2VsaW5lIHRoaXMuCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVj
dGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBl
Y3RhdGlvbnMJKHJldmlzaW9uIDI3NzU2OSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIv
VGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjM1NywxMCArMjM1NywxMyBAQCBm
YXN0L3JlcGxhY2VkL3BkZi1hcy1lbWJlZC13aXRoLW5vLW1pbWUtCiAjIEl0IHdhcyBhIGZsYWt5
IGNyYXNoIHVudGlsIHIyNzU1MTYsIGJ1dCBpdCdzIHN0aWxsIGEgdGltZW91dCBmbGFreS4KIHdl
YmtpdC5vcmcvYi8yMjQxMTIgbWVkaWEvdmlkZW8tYXMtaW1nLW91dHB1dC1wdHMuaHRtbCBbIFRp
bWVvdXQgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8yMjU0MjMgZmFzdC9jYW52YXMvY2FudmFzLWNv
bG9yLXNwYWNlLWRpc3BsYXktcDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9y
Zy9iLzIyNTQyMyBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy1JbWFn
ZURhdGEuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIyNTQyMyBmYXN0L2NhbnZhcy9j
YW52YXMtY29tcG9zaXRlLXRleHQtYWxwaGEuaHRtbCBbIEZhaWx1cmUgXQogCisjIE5vbi1zUkdC
IGNvbG9yIHNwYWNlcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkgdGhlIGdsaWIgcG9y
dHMuCitmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy5odG1sIFsgU2tp
cCBdCitmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3BhY2UtZGlzcGxheS1wMy1JbWFnZURhdGEu
aHRtbCBbIFNraXAgXQorc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1pbWFnZS1k
YXRhLWRpc3BsYXktcDMuaHRtbCBbIFNraXAgXQorCiAjIEZhaWxpbmcgYWZ0ZXIgcjI3NzA3My4K
IHdlYmtpdC5vcmcvYi8yMjU0NjIgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWJhY2tncm91bmRzL2JhY2tncm91bmQtcmVwZWF0LXNwYWNlLTEwLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMjU0NjIgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWJhY2tncm91bmRzL2JhY2tncm91bmQtcmVwZWF0LXNwYWNlLTFhLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAyNzc1NjkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDYzNSw2ICs0NjM1LDcg
QEAgd2ViZXhwb3NlZC9jb3VudGVyLXN0eWxlLWltYWdlLXN5bWJvbHMtbgogCiBmYXN0L3RleHQv
bGluZS1icmVhay13aXRoLWxvY2FsZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLSMgTm9u
LVNSR0IgY29sb3Igc3BhY2VzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBieSB0aGUgV2lu
ZG93cyBwb3J0LgorIyBOb24tc1JHQiBjb2xvciBzcGFjZXMgYXJlIG5vdCBjdXJyZW50bHkgc3Vw
cG9ydGVkIGJ5IHRoZSBXaW5kb3dzIHBvcnQuCiBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3Bh
Y2UtZGlzcGxheS1wMy5odG1sIFsgU2tpcCBdCiBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc3Bh
Y2UtZGlzcGxheS1wMy1JbWFnZURhdGEuaHRtbCBbIFNraXAgXQorc3RvcmFnZS9pbmRleGVkZGIv
c3RydWN0dXJlZC1jbG9uZS1pbWFnZS1kYXRhLWRpc3BsYXktcDMuaHRtbCBbIFNraXAgXQpJbmRl
eDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0
dXJlZC1jbG9uZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3NzU2OSkKKysrIExheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC01ODMsMTAgKzU4MywxMSBAQCBQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRl
c3RfZGF0YS50b1N0CiAKIAogVGVzdGluZyBJbWFnZURhdGEKK1Rlc3RpbmcgSW1hZ2VEYXRhOiB7
IGNvbG9yU3BhY2U6ICJzcmdiIiB9CiBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdj
YW52YXMnKQogY2FudmFzLndpZHRoID0gOAogY2FudmFzLmhlaWdodCA9IDgKLXRlc3RfZGF0YSA9
IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAwLCA4LCA4KQordGVzdF9k
YXRhID0gY2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgsIDgsIHsg
Y29sb3JTcGFjZTogInNyZ2IiIH0pCiB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9y
ZU5hbWUnLCAncmVhZHdyaXRlJykKIHN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCiBzdG9yZS5wdXQodmFsdWUsICdrZXknKQpAQCAtNTk2LDYgKzU5NywyMyBAQCBQ
QVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1CiBQQVNTIHJlc3VsdC53aWR0
aCBpcyB0ZXN0X2RhdGEud2lkdGgKIFBBU1MgcmVzdWx0LmhlaWdodCBpcyB0ZXN0X2RhdGEuaGVp
Z2h0CiBQQVNTIHJlc3VsdC5kYXRhLmxlbmd0aCBpcyB0ZXN0X2RhdGEuZGF0YS5sZW5ndGgKK1BB
U1MgcmVzdWx0LmNvbG9yU3BhY2UgaXMgdGVzdF9kYXRhLmNvbG9yU3BhY2UKK1BBU1MgcmVzdWx0
IGRhdGEgbWF0Y2hlcworVGVzdGluZyBJbWFnZURhdGE6IHsgY29sb3JTcGFjZTogdW5kZWZpbmVk
IH0KK2NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpCitjYW52YXMud2lk
dGggPSA4CitjYW52YXMuaGVpZ2h0ID0gOAordGVzdF9kYXRhID0gY2FudmFzLmdldENvbnRleHQo
JzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgsIDgsIHsgY29sb3JTcGFjZTogdW5kZWZpbmVkIH0p
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCAncmVhZHdyaXRlJykK
K3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCitzdG9yZS5wdXQo
dmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3Vs
dCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlz
ICJbb2JqZWN0IEltYWdlRGF0YV0iCitQQVNTIHJlc3VsdC53aWR0aCBpcyB0ZXN0X2RhdGEud2lk
dGgKK1BBU1MgcmVzdWx0LmhlaWdodCBpcyB0ZXN0X2RhdGEuaGVpZ2h0CitQQVNTIHJlc3VsdC5k
YXRhLmxlbmd0aCBpcyB0ZXN0X2RhdGEuZGF0YS5sZW5ndGgKK1BBU1MgcmVzdWx0LmNvbG9yU3Bh
Y2UgaXMgdGVzdF9kYXRhLmNvbG9yU3BhY2UKIFBBU1MgcmVzdWx0IGRhdGEgbWF0Y2hlcwogCiBU
ZXN0aW5nIEJsb2IKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVy
ZWQtY2xvbmUtaW1hZ2UtZGF0YS1kaXNwbGF5LXAzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWltYWdlLWRh
dGEtZGlzcGxheS1wMy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1pbWFnZS1kYXRhLWRpc3BsYXktcDMt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAKK1Rlc3Qgc3RydWN0
dXJlZCBjbG9uZSBvZiBJbWFnZURhdGEgd2l0aCBhIGRpc3BsYXktcDMgY29sb3JTcGFjZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERC
IHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJ
bmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgnc3RvcmVOYW1lJykKK1RoaXMgaW5kZXggaXMgbm90IHVzZWQsIGJ1dCBldmFsdWF0aW5n
IGtleSBwYXRoIG9uIGVhY2ggcHV0KCkgY2FsbCB3aWxsIGV4ZXJjaXNlIChkZSlzZXJpYWxpemF0
aW9uOgorc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScsICdkdW1teUtleVBhdGgnKQorCitU
ZXN0aW5nIEltYWdlRGF0YTogeyBjb2xvclNwYWNlOiAiZGlzcGxheS1wMyIgfQorY2FudmFzID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJykKK2NhbnZhcy53aWR0aCA9IDgKK2NhbnZh
cy5oZWlnaHQgPSA4Cit0ZXN0X2RhdGEgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5nZXRJbWFn
ZURhdGEoMCwgMCwgOCwgOCwgeyBjb2xvclNwYWNlOiAiZGlzcGxheS1wMyIgfSkKK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsICdyZWFkd3JpdGUnKQorc3RvcmUgPSB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3Qg
SW1hZ2VEYXRhXSIKK1BBU1MgcmVzdWx0LndpZHRoIGlzIHRlc3RfZGF0YS53aWR0aAorUEFTUyBy
ZXN1bHQuaGVpZ2h0IGlzIHRlc3RfZGF0YS5oZWlnaHQKK1BBU1MgcmVzdWx0LmRhdGEubGVuZ3Ro
IGlzIHRlc3RfZGF0YS5kYXRhLmxlbmd0aAorUEFTUyByZXN1bHQuY29sb3JTcGFjZSBpcyB0ZXN0
X2RhdGEuY29sb3JTcGFjZQorUEFTUyByZXN1bHQgZGF0YSBtYXRjaGVzCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1pbWFnZS1kYXRhLWRpc3BsYXktcDMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1
cmVkLWNsb25lLWltYWdlLWRhdGEtZGlzcGxheS1wMy5odG1sCShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtaW1hZ2UtZGF0YS1k
aXNwbGF5LXAzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5MyBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3Qgc3RydWN0dXJlZCBjbG9uZSBv
ZiBJbWFnZURhdGEgd2l0aCBhIGRpc3BsYXktcDMgY29sb3JTcGFjZS4iKTsKKworICAgIGluZGV4
ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBzdGFydFRlc3RzKTsKKworICAgIGZ1bmN0aW9uIHBy
ZXBhcmVEYXRhYmFzZSgpCisgICAgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CisgICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpIik7CisgICAgICAgIGRlYnVnKCJUaGlzIGluZGV4IGlzIG5vdCB1c2VkLCBidXQgZXZh
bHVhdGluZyBrZXkgcGF0aCBvbiBlYWNoIHB1dCgpIGNhbGwgd2lsbCBleGVyY2lzZSAoZGUpc2Vy
aWFsaXphdGlvbjoiKTsKKyAgICAgICAgZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2lu
ZGV4TmFtZScsICdkdW1teUtleVBhdGgnKSIpOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiB0
ZXN0VmFsdWUodmFsdWUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLy8gT25lIHRyYW5zYWN0
aW9uIHBlciB0ZXN0LCBzaW5jZSBzb21lIHRlc3RzIHJlcXVpcmUgYXN5bmNocm9ub3VzCisgICAg
ICAgIC8vIG9wZXJhdGlvbnMgdG8gdmVyaWZ5IHRoZSByZXN1bHQgKGUuZy4gdmlhIEZpbGVSZWFk
ZXIpCisgICAgICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0
b3JlTmFtZScsICdyZWFkd3JpdGUnKSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1
bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICAgICAgZXZhbEFuZExvZygic3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKworICAgICAgICBzZWxmLnZhbHVl
ID0gdmFsdWU7CisgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5wdXQodmFsdWUs
ICdrZXknKSIpOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuZ2V0KCdrZXknKSIpOworICAgICAgICAg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgICAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBjYWxs
YmFjayhyZXF1ZXN0LnJlc3VsdCk7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH0K
KworICAgIC8vIElkZW50aXR5IHRlc3RpbmcsIHNlbnNpdGl2ZSB0byBOYU4gYW5kIC0wCisgICAg
ZnVuY3Rpb24gaXMoeCwgeSkgeworICAgICAgICBpZiAoeCA9PT0geSkgeworICAgICAgICAgICAg
cmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5OworICAgICAgICB9CisgICAgICAgIHJl
dHVybiB4ICE9PSB4ICYmIHkgIT09IHk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXJyYXlDb21w
YXJlKGEsIGIpIHsKKyAgICAgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgeworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgYS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKCFpcyhhW2ldLCBiW2ldKSkgewor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGFydFRlc3RzKCkK
KyAgICB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoYFRlc3RpbmcgSW1hZ2VE
YXRhOiB7IGNvbG9yU3BhY2U6ICJkaXNwbGF5LXAzIiB9YCk7CisgICAgICAgIGV2YWxBbmRMb2co
ImNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpIik7CisgICAgICAgIGV2
YWxBbmRMb2coImNhbnZhcy53aWR0aCA9IDgiKTsKKyAgICAgICAgZXZhbEFuZExvZygiY2FudmFz
LmhlaWdodCA9IDgiKTsKKyAgICAgICAgZXZhbEFuZExvZyhgdGVzdF9kYXRhID0gY2FudmFzLmdl
dENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgsIDgsIHsgY29sb3JTcGFjZTogImRp
c3BsYXktcDMiIH0pYCk7CisgICAgCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjU2OyAr
K2kpIHsKKyAgICAgICAgICAgIHRlc3RfZGF0YS5kYXRhW2ldID0gaTsKKyAgICAgICAgfQorCisg
ICAgICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAg
ICAgc2VsZi5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInRlc3Rf
ZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIiwgIltvYmplY3QgSW1hZ2VEYXRh
XSIpOworICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdC53aWR0aCIsICJ0ZXN0X2RhdGEud2lk
dGgiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHQuaGVpZ2h0IiwgInRlc3RfZGF0YS5o
ZWlnaHQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHQuZGF0YS5sZW5ndGgiLCAidGVz
dF9kYXRhLmRhdGEubGVuZ3RoIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0LmNvbG9y
U3BhY2UiLCAidGVzdF9kYXRhLmNvbG9yU3BhY2UiKTsKKyAgICAgICAgICAgIGlmIChhcnJheUNv
bXBhcmUodGVzdF9kYXRhLmRhdGEsIHJlc3VsdC5kYXRhKSkgeworICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoInJlc3VsdCBkYXRhIG1hdGNoZXMiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgicmVzdWx0IGRhdGEgZG9lc24ndCBtYXRjaCIpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc3RydWN0dXJlZC1jbG9uZS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
c3RydWN0dXJlZC1jbG9uZS5qcwkocmV2aXNpb24gMjc3NTY5KQorKysgTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3N0cnVjdHVyZWQtY2xvbmUuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTMxMiwyOSArMzEyLDM4IEBAIGZ1bmN0aW9uIHRlc3RSZWdFeHBPYmplY3QoY2FsbGJh
Y2spCiBmdW5jdGlvbiB0ZXN0SW1hZ2VEYXRhKGNhbGxiYWNrKQogewogICAgIGRlYnVnKCJUZXN0
aW5nIEltYWdlRGF0YSIpOwotICAgIGV2YWxBbmRMb2coImNhbnZhcyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2NhbnZhcycpIik7Ci0gICAgZXZhbEFuZExvZygiY2FudmFzLndpZHRoID0gOCIp
OwotICAgIGV2YWxBbmRMb2coImNhbnZhcy5oZWlnaHQgPSA4Iik7Ci0gICAgZXZhbEFuZExvZygi
dGVzdF9kYXRhID0gY2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgs
IDgpIik7CisgICAgZnVuY3Rpb24gdGVzdEltYWdlRGF0YShjb2xvclNwYWNlLCBjYWxsYmFjaykg
eworICAgICAgICBkZWJ1ZyhgVGVzdGluZyBJbWFnZURhdGE6IHsgY29sb3JTcGFjZTogJHtjb2xv
clNwYWNlfSB9YCk7CisgICAgICAgIGV2YWxBbmRMb2coImNhbnZhcyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2NhbnZhcycpIik7CisgICAgICAgIGV2YWxBbmRMb2coImNhbnZhcy53aWR0aCA9
IDgiKTsKKyAgICAgICAgZXZhbEFuZExvZygiY2FudmFzLmhlaWdodCA9IDgiKTsKKyAgICAgICAg
ZXZhbEFuZExvZyhgdGVzdF9kYXRhID0gY2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0SW1hZ2VE
YXRhKDAsIDAsIDgsIDgsIHsgY29sb3JTcGFjZTogJHtjb2xvclNwYWNlfSB9KWApOwogCi0gICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7ICsraSkgewotICAgICAgICB0ZXN0X2RhdGEuZGF0YVtp
XSA9IGk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjU2OyArK2kpIHsKKyAgICAgICAg
ICAgIHRlc3RfZGF0YS5kYXRhW2ldID0gaTsKKyAgICAgICAgfQorCisgICAgICAgIHRlc3RWYWx1
ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgc2VsZi5yZXN1bHQg
PSByZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0
Iik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIiwgIltvYmplY3QgSW1hZ2VEYXRhXSIpOworICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdC53aWR0aCIsICJ0ZXN0X2RhdGEud2lkdGgiKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHQuaGVpZ2h0IiwgInRlc3RfZGF0YS5oZWlnaHQiKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHQuZGF0YS5sZW5ndGgiLCAidGVzdF9kYXRhLmRhdGEubGVu
Z3RoIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0LmNvbG9yU3BhY2UiLCAidGVzdF9k
YXRhLmNvbG9yU3BhY2UiKTsKKyAgICAgICAgICAgIGlmIChhcnJheUNvbXBhcmUodGVzdF9kYXRh
LmRhdGEsIHJlc3VsdC5kYXRhKSkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoInJlc3Vs
dCBkYXRhIG1hdGNoZXMiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgicmVzdWx0IGRhdGEgZG9lc24ndCBtYXRjaCIpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSk7CiAgICAgfQogCi0gICAgdGVzdFZh
bHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgIHNlbGYucmVzdWx0ID0g
cmVzdWx0OwotICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7Ci0g
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHJlc3VsdCkiLCAiW29iamVjdCBJbWFnZURhdGFdIik7Ci0gICAgICAgIHNob3VsZEJlKCJy
ZXN1bHQud2lkdGgiLCAidGVzdF9kYXRhLndpZHRoIik7Ci0gICAgICAgIHNob3VsZEJlKCJyZXN1
bHQuaGVpZ2h0IiwgInRlc3RfZGF0YS5oZWlnaHQiKTsKLSAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dC5kYXRhLmxlbmd0aCIsICJ0ZXN0X2RhdGEuZGF0YS5sZW5ndGgiKTsKLSAgICAgICAgaWYgKGFy
cmF5Q29tcGFyZSh0ZXN0X2RhdGEuZGF0YSwgcmVzdWx0LmRhdGEpKSB7Ci0gICAgICAgICAgICB0
ZXN0UGFzc2VkKCJyZXN1bHQgZGF0YSBtYXRjaGVzIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJyZXN1bHQgZGF0YSBkb2Vzbid0IG1hdGNoIik7Ci0gICAgICAg
IH0KLSAgICAgICAgY2FsbGJhY2soKTsKLSAgICB9KTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNr
KHRlc3RJbWFnZURhdGEsIFsKKyAgICAgICAgYCJzcmdiImAsCisgICAgICAgIGB1bmRlZmluZWRg
CisgICAgXSwgY2FsbGJhY2spOwogfQogCiBmdW5jdGlvbiByZWFkQmxvYkFzVGV4dChibG9iLCBj
YWxsYmFjaykK
</data>

          </attachment>
      

    </bug>

</bugzilla>